Alter table sous Oracle
Fermé
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.
A voir également:
- Alter oracle
- Oracle liste des tables ✓ - Forum Programmation
- Oracle virtualbox telecharger - Télécharger - Émulation & Virtualisation
- Violation de contrainte unique oracle - Forum Programmation
- Oracle america inc mac - Forum Logiciels
- Double oracle - Forum Oracle
7 réponses
DaNot
Messages postés
221
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
4 novembre 2005
163
13 mai 2004 à 15:08
13 mai 2004 à 15:08
Salut,
La syntaxe de la commande ALTER TABLE en Oracle :
ou alors
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 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...
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))
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))
DaNot
Messages postés
221
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
4 novembre 2005
163
13 mai 2004 à 15:35
13 mai 2004 à 15:35
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...
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 !
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 !?
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 !?
DaNot
Messages postés
221
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
4 novembre 2005
163
13 mai 2004 à 15:39
13 mai 2004 à 15:39
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...
DaNot
un Libre ouvert à la source...