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

Hvordan indsætter man en kolonne i en bestemt position i oracle uden at tabe og genskabe tabellen?

Amit-

Jeg tror ikke, du kan tilføje en kolonne andre steder end i slutningen af ​​tabellen, når først tabellen er oprettet. En løsning kunne være at prøve dette:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Slip den tabel, du vil tilføje kolonner til:

DROP TABLE TABLE_TO_CHANGE;

Det er på det tidspunkt, du kan genopbygge den eksisterende tabel fra bunden ved at tilføje i kolonnerne, hvor du ønsker det. Lad os antage, at du til denne øvelse vil tilføje kolonnerne med navnet "COL2 og COL3".

Indsæt nu dataene tilbage i den nye tabel:

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

Når dataene er indsat i din "ny-gamle" tabel, kan du droppe den midlertidige tabel.

DROP TABLE MY_TEMP_TABLE;

Det er ofte, hvad jeg gør, når jeg vil tilføje kolonner på et bestemt sted. Det er klart, at hvis dette er et online-produktionssystem, så er det sandsynligvis ikke praktisk, men blot en potentiel idé.

-CJ



  1. Importer database til MySQL eller MariaDB

  2. Hvordan kan jeg bruge en enkelt mssql-forbindelsespulje på tværs af flere ruter i en Express 4-webapplikation?

  3. Indlæsning af data fra en tekstfil til en tabel i oracle

  4. SQL Server-databaser CPU-brugsstatistik