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

  1. DaNot Messages postés 221 Statut Membre 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
  2. 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
  3. DaNot Messages postés 221 Statut Membre 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. DaNot Messages postés 221 Statut Membre 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
  8. Dohz
     
    Sinon il y a le "Column_id" qui peut peu être t'aider.
    0