Alter table sous Oracle

fred -  
 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.

7 réponses

DaNot Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   163
 
Salut,

La syntaxe de la commande ALTER TABLE en Oracle :
ALTER TABLE <Nom>
   ADD (<Colonne> <Type>, <Colonne> <Type>, ...)

ou alors
ALTER 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...
16
angel
 
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))
7
DaNot Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   163
 
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...
1
fred
 
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 !
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fred
 
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 !?
0
DaNot Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   163
 
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...
0
Dohz
 
Sinon il y a le "Column_id" qui peut peu être t'aider.
0