sql >> Databasteknik >  >> RDS >> Oracle

Hur infogar man en kolumn i en specifik position i oracle utan att tappa och återskapa tabellen?

Amit-

Jag tror inte att du kan lägga till en kolumn någonstans utom i slutet av tabellen när tabellen väl har skapats. En lösning kan vara att prova detta:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Släpp tabellen som du vill lägga till kolumner till:

DROP TABLE TABLE_TO_CHANGE;

Det är vid den punkt du kan bygga om den befintliga tabellen från början och lägga till i kolumnerna där du vill. Låt oss anta att du för denna övning vill lägga till kolumnerna med namnet "COL2 och COL3".

Infoga nu data tillbaka i den nya tabellen:

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

När data har infogats i din "nygamla" tabell kan du släppa den tillfälliga tabellen.

DROP TABLE MY_TEMP_TABLE;

Detta är ofta vad jag gör när jag vill lägga till kolumner på en specifik plats. Om detta är ett on-line-produktionssystem är det uppenbarligen inte praktiskt, utan bara en potentiell idé.

-CJ



  1. MySQL DISTINCT på en GROUP_CONCAT()

  2. Escape Character i SQL Server

  3. Hur man automatiserar datainsamling på SQL Server Database Growth

  4. Objektet i klassen DateTime kunde inte konverteras till sträng