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.
A voir également:
- Alter oracle
- Oracle jre usage ✓ - Forum Virus
- Alter ego colin thibert ✓ - Forum Loisirs / Divertissements
- Oracle 11g download windows 64-bit ✓ - Forum Oracle
- Telecharger oracle virtualbox - Télécharger - Émulation & Virtualisation
- Oracle america inc mac - Forum Logiciels
7 réponses
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))
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 !?