sql >> Database >  >> RDS >> Oracle

Hoe een kolom op een specifieke positie in orakel in te voegen zonder de tabel te laten vallen en opnieuw te maken?

Amit-

Ik geloof niet dat je een kolom overal kunt toevoegen, behalve aan het einde van de tabel zodra de tabel is gemaakt. Een oplossing zou kunnen zijn om dit te proberen:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Zet de tabel neer waaraan u kolommen wilt toevoegen:

DROP TABLE TABLE_TO_CHANGE;

Het is op het punt dat u de bestaande tabel helemaal opnieuw kunt opbouwen door de kolommen toe te voegen waar u wilt. Laten we aannemen dat u voor deze oefening de kolommen met de naam "COL2 en COL3" wilt toevoegen.

Voeg nu de gegevens terug in de nieuwe tabel:

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

Wanneer de gegevens in uw "nieuwe-oude" tabel zijn ingevoegd, kunt u de tijdelijke tabel laten vallen.

DROP TABLE MY_TEMP_TABLE;

Dit is vaak wat ik doe als ik kolommen op een specifieke locatie wil toevoegen. Het is duidelijk dat als dit een online productiesysteem is, het waarschijnlijk niet praktisch is, maar slechts één potentieel idee.

-CJ



  1. Lopend totaal berekenen in MySQL

  2. Een lopende SELECT-instructie doden?

  3. Hoe gebruik ik de opbouwfunctie voor expressies in Access 2016?

  4. SQL Server 2016:Verbeteringen voor beschikbaarheidsgroepen