Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como inserir uma coluna em uma posição específica no oracle sem soltar e recriar a tabela?


Amit-

Eu não acredito que você possa adicionar uma coluna em qualquer lugar, mas no final da tabela, uma vez que a tabela é criada. Uma solução pode ser tentar isso:
CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Solte a tabela à qual você deseja adicionar colunas:
DROP TABLE TABLE_TO_CHANGE;

É no ponto em que você pode reconstruir a tabela existente do zero adicionando as colunas onde desejar. Vamos supor que para este exercício você deseja adicionar as colunas chamadas "COL2 e COL3".

Agora insira os dados de volta na nova tabela:
INSERT INTO TABLE_TO_CHANGE (COL1, COL2, COL3, COL4) 
SELECT COL1, 'Foo', 'Bar', COL4
FROM MY_TEMP_TABLE;

Quando os dados são inseridos em sua tabela "nova-antiga", você pode descartar a tabela temporária.
DROP TABLE MY_TEMP_TABLE;

Geralmente é isso que faço quando quero adicionar colunas em um local específico. Obviamente, se este é um sistema de produção on-line, provavelmente não é prático, mas apenas uma ideia em potencial.

-CJ