Téléchargement
illégal
Posez votre question Signaler

Alter table sous Oracle

fred - Dernière réponse le 5 avril 2012 à 10:42
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.
Lire la suite 

Alter table sous Oracle »

7 réponses
Réponse
+11
moins plus
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...
Ajouter un commentaire
Réponse
+4
moins plus
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))
Ajouter un commentaire
Réponse
+0
moins plus
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 !?
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Réponse
+0
moins plus
Sinon il y a le "Column_id" qui peut peu être t'aider.
Ajouter un commentaire
Ce document intitulé « Alter table sous Oracle » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?