Oracle将列移至第一位

opH*_*AME 7 database oracle

有没有办法将oracle表中的列从最后一个位置移动到第一个位置?有人丢弃了ID列,并重新创建了它.所以现在它结束了,这是一个问题,因为我们的一些PHP脚本使用第一列作为标识符(一个抽象模型使用此基础对象超过100个其他模型..)

也可以看看

nic*_*ckf 18

甲骨文常见问题解答说:

Oracle仅允许将列添加到现有表的末尾.

你必须重新创建你的桌子.

RENAME tab1 TO tab1_old;

CREATE TABLE tab1 AS SELECT id, <the rest of your columns> FROM tab1_old;
Run Code Online (Sandbox Code Playgroud)


Vin*_*rat 7

修改表的列的逻辑顺序的最简单方法是重命名表并使用"右"列位置创建视图:

ALTER TABLE your_table RENAME TO your_table_t;

CREATE VIEW your_table AS SELECT <columns in the right order> FROM your_table_t;

-- grants on the view (the same as the table)
GRANT ** TO ** ON your_table;
Run Code Online (Sandbox Code Playgroud)

您的应用程序的行为就像列位于"正确"位置一样.您不必触摸物理结构.