DB2:如何在现有列之间添加新列?

时间:2017-02-27 11:42:34

标签: sql db2 db2-luw

我有一个现有的DB2数据库和一个名为的表 employeeid,e_name,e_mobile_no,e_dob,e_address

如何在e_father_name之前添加新列e_mobile_no

3 个答案:

答案 0 :(得分:2)

您应该尝试使用允许更改表结构的ADMIN_MOVE_TABLE过程。

ALTER TABLE仅允许在表的末尾添加列。原因是它会改变表的物理结构,即每行需要适应新格式。这将是非常昂贵的。

使用上述过程ADMIN_MOVE_TABLE,您将复制整个表,并在此过程中更改表结构。它需要大量的空间和时间。

答案 1 :(得分:0)

我总是这样做 -

  • 进行表数据和db2look的备份/转储 (如果你像我一样转储到CSV文件,我建议以新格式转储,例如在正确的位置为新列添加null。

  • 删除表和索引

  • 使用新colunn

  • 创建表格
  • 使用旧值加载数据

  • 重新创建所有索引和runstats。

一旦你完成它几次就会变成旧帽子。

答案 2 :(得分:0)

在DB2 IBM i v7r1中,您可以执行此操作,尝试使用DB2版本

alter table yourtable
add column e_father_name varchar(10) before e_mobile_no