有没有办法将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)
修改表的列的逻辑顺序的最简单方法是重命名表并使用"右"列位置创建视图:
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)
您的应用程序的行为就像列位于"正确"位置一样.您不必触摸物理结构.