Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да вмъкнете колона в конкретна позиция в оракул, без да изпускате и пресъздавате таблицата?

Амит-

Не вярвам, че можете да добавите колона навсякъде, освен в края на таблицата, след като таблицата е създадена. Едно решение може да бъде да опитате това:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Пуснете таблицата, към която искате да добавите колони:

DROP TABLE TABLE_TO_CHANGE;

Това е моментът, в който можете да възстановите съществуващата таблица от нулата, като добавите колоните, където желаете. Да предположим, че за това упражнение искате да добавите колоните, наречени "COL2 и COL3".

Сега поставете данните обратно в новата таблица:

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

Когато данните се вмъкнат във вашата "нова-стара" таблица, можете да пуснете временната таблица.

DROP TABLE MY_TEMP_TABLE;

Това често правя, когато искам да добавя колони на определено място. Очевидно, ако това е производствена онлайн система, то вероятно не е практична, а само една потенциална идея.

-CJ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавите вертикални граници към вашата изходна мрежа SQL*Plus / SQLcl

  2. Как да върна няколко реда от съхранената процедура? (Oracle PL/SQL)

  3. Изберете без клауза FROM в Oracle

  4. Как да получите последния ден от месеца в Oracle

  5. Oracle не прави разлика между нулеви и празни низове?