Alter table sous Oracle
fred
-
Dohz -
Dohz -
Salut,
J'ai une requête MySQL du type : "ALTER TABLE nom_table ADD champ type AFTER champ;" que je voudrais exécuter sur une base Oracle. Manque de bol, le mot clé AFTER ne marche pas sous Oracle !! Comment pourrais-je modifier la requête pour qu'elle ait le même effet sous Oracle ??
Merci pour vos réponses.
J'ai une requête MySQL du type : "ALTER TABLE nom_table ADD champ type AFTER champ;" que je voudrais exécuter sur une base Oracle. Manque de bol, le mot clé AFTER ne marche pas sous Oracle !! Comment pourrais-je modifier la requête pour qu'elle ait le même effet sous Oracle ??
Merci pour vos réponses.
7 réponses
-
Salut,
La syntaxe de la commande ALTER TABLE en Oracle :ALTER TABLE <Nom> ADD (<Colonne> <Type>, <Colonne> <Type>, ...)
ou alorsALTER TABLE <Nom> MODIFY (<Colonne> <Type>, <Colonne> <Type>, ...)
Je ne connais pas exactement ce que veux dire le mot AFTER en MySQL. Si tu veux plus d'info, j'ai la doc Oracle en ligne...
DaNot
un Libre ouvert à la source... -
la solution c de créer le champ que vous voulez ajouter:
alter table (nom table)
add (nom champ type (nb caractère) not null))
puis créer une autre table apartir de cella
create table t2 from (select champ1 , champ2 , (et vous deplacer le champ que vous avez créer la ou vous , voulez) from table 1)
apres ça il faut suprimer la table 1 pour pouvoir renomer la table 2 t2
drop table1
rename table 2 to table 1
et vous pouvez apres ajouter des contraintes
exemple
alter table table1
add (constraint c1 check (champ1>10)) -
Si, si ! c'est impossible, je te le confirme.
le seul moyen d'inserer une colonne entre deux colonnes existantes, c'est de casser la table !
Un point positif, c'est tres facile de creer une table a partir d'une autre :
CREATE TABLE <NouveauNom>
SELECT *
FROM <AncienNom>;
Le seul incovenient (et non des moindres) c'est que tous les index, cles etrangeres petent si la table est supprimee....
DaNot
un Libre ouvert à la source... -
oh merde....
bon, le seul moyen c'est de re-créer la table alors en rajoutant le champ à la main. bon ben je vais m'y atteler alors.
merci pour tes infos ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
merci pour ta réponse,
en MySQL le mot clé AFTER permet de spécifier après quel champ on doit ajouter le nouveau (ce peut-être en plein milieu de la table et non pas obligatoirement à la fin).
par exemple si on a une table : id | champ1 | champ2, alter table add champ3 after champ1 donnera : id | champ1 | champ3 | champ2.
Option que je ne retrouve pas chez Oracle... ça me parait bizarre que ce soit impossible à faire !? -
Une precision quand meme, cela est vrai pour la version 7. Peut etre ont ils retabli la chose depuis ....
DaNot
un Libre ouvert à la source... -