Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment insérer une colonne dans une position spécifique dans Oracle sans supprimer et recréer la table ?

Amit-

Je ne crois pas que vous puissiez ajouter une colonne n'importe où mais à la fin de la table une fois la table créée. Une solution pourrait être d'essayer ceci :

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Déposez le tableau auquel vous souhaitez ajouter des colonnes :

DROP TABLE TABLE_TO_CHANGE;

C'est au point que vous pouvez reconstruire la table existante à partir de zéro en ajoutant les colonnes où vous le souhaitez. Supposons que pour cet exercice, vous souhaitiez ajouter les colonnes nommées "COL2 et COL3".

Réinsérez maintenant les données dans la nouvelle table :

INSERT INTO TABLE_TO_CHANGE (COL1, COL2, COL3, COL4) 
SELECT COL1, 'Foo', 'Bar', COL4
FROM MY_TEMP_TABLE;

Lorsque les données sont insérées dans votre table "nouvelle-ancienne", vous pouvez supprimer la table temporaire.

DROP TABLE MY_TEMP_TABLE;

C'est souvent ce que je fais lorsque je souhaite ajouter des colonnes à un emplacement spécifique. Évidemment, s'il s'agit d'un système de production en ligne, ce n'est probablement pas pratique, mais juste une idée potentielle.

-CJ