Oracle
 sql >> Database >  >> RDS >> Oracle

Come inserire una colonna in una posizione specifica in Oracle senza far cadere e ricreare la tabella?

Amit-

Non credo che tu possa aggiungere una colonna ovunque ma alla fine della tabella una volta creata la tabella. Una soluzione potrebbe essere provare questo:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Rilascia la tabella a cui vuoi aggiungere le colonne:

DROP TABLE TABLE_TO_CHANGE;

È a questo punto che potresti ricostruire da zero la tabella esistente aggiungendo le colonne dove desideri. Supponiamo per questo esercizio di voler aggiungere le colonne denominate "COL2 e COL3".

Ora reinserisci i dati nella nuova tabella:

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

Quando i dati vengono inseriti nella tua tabella "nuovo-vecchio", puoi eliminare la tabella temporanea.

DROP TABLE MY_TEMP_TABLE;

Questo è spesso ciò che faccio quando voglio aggiungere colonne in una posizione specifica. Ovviamente se si tratta di un sistema di produzione in linea, probabilmente non è pratico, ma solo un'idea potenziale.

-CJ