在表格中间插入新列?

Rob*_*uld 9 sql database oracle

当使用"ALTER TABLE选项卡ADD col"时,新列将添加到表的末尾.例如:

TABLE: TAB
COL_1 COL_2 COL_4

ALTER TABLE TAB ADD COL_3
Run Code Online (Sandbox Code Playgroud)

表将成为

TABLE: TAB
COL_1 COL_2 COL_4 COL_3
Run Code Online (Sandbox Code Playgroud)

但是,由于我的示例列的命名表明我实际上喜欢这个表最终像这样:

TABLE: TAB
COL_1 COL_2 COL_3 COL_4 
Run Code Online (Sandbox Code Playgroud)

在COL_4之前使用COL_3.

除了从头开始重建表之外,是否有任何标准的SQL可以完成工作?但是,如果没有标准的SQL,我仍然可以使用一些供应商相关的Oracle解决方案,但同样标准的解决方案也是最好的.

谢谢.

Raj*_*ore 13

默认情况下,列仅在末尾添加.

要在中间插入列,您必须删除并重新创建表和所有相关对象(约束,索引,默认值,关系等).

有几个工具可以帮到您,并且根据表的大小,这可能是一个密集的操作.

您还可以考虑在表格上创建按优先顺序显示列的视图(覆盖表中的实际顺序).


小智 5

有用.

ALTER TABLE tablename ADD columnname datatype AFTER columnname;
Run Code Online (Sandbox Code Playgroud)