2017-10-12 171 views
1

DB2如何修改用于添加多列的表语句?如果在添加列时遇到问题,是否按顺序添加列并删除已添加的列?列的顺序是否保留?多次调用alter table语句会更好吗,对于每个列而言,性能是否明智?DB2如何更改用于添加多列的表语句?

回答

1

您可以一次添加栏多是这样的:

alter table jgrun.tmp   
add column col1 varchar(15)  
add column col2 int default 0 
add column col3 varchar(10) 

您可以删除多列这样的:

alter table jgrun.tmp  
drop column col1   
drop column col2 

如果您必须添加/删除多个列,你应该用这种方法(更好的一个接一个)

1

随着Db2,DDL(包括alter table)在事务控制下,所以如果你想做多个改变(创建,下拉,更改等),您可以在一个单一的工作单元内完成工作,但需要具备可用的事务日志记录功能。因此,多个DDL语句可以是单个原子操作,这意味着如果其中一个失败,整个事务将回滚。根据宿主Db2(Z/OS,i-series,Unix/windows)和Db2版本的平台,对于在Db2需要重组之前可能发生的表的单独更改的数量有限制。这会影响您使用的ALTER语句的数量(例如,在单个语句中添加多个列)。

性能可能并不是决定如何对变更进行分组的因素。可恢复性,空间考虑,对象依赖性,退出,HA/DR考虑,变更窗口时间,可用性问题,调度,代码依赖性可以确定您使用的序列。一种尺寸不适合所有。