一尘不染

在表格中间插入新列?

sql

当使用“ ALTER TABLE tab ADD col”时,新列将添加到表的末尾。例如:

TABLE: TAB
COL_1 COL_2 COL_4

ALTER TABLE TAB ADD COL_3

桌子会变成

TABLE: TAB
COL_1 COL_2 COL_4 COL_3

但是,正如我的示例列的命名所暗示的那样,我实际上希望表最终像这样:

TABLE: TAB
COL_1 COL_2 COL_3 COL_4

在COL_4之前使用COL_3。

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

谢谢。


阅读 146

收藏
2021-03-10

共1个答案

一尘不染

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

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

有几种工具可以帮助您完成此操作,并且根据表的大小,这可能是一项繁重的操作。

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

2021-03-10