DB2如何更改用于添加多列的表语句?
问题描述:
DB2如何修改用于添加多列的表语句?如果在添加列时遇到问题,是否按顺序添加列并删除已添加的列?列的顺序是否保留?多次调用alter table语句会更好吗,对于每个列而言,性能是否明智?DB2如何更改用于添加多列的表语句?
答
您可以一次添加栏多是这样的:
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
如果您必须添加/删除多个列,你应该用这种方法(更好的一个接一个)
答
随着Db2,DDL(包括alter table)在事务控制下,所以如果你想做多个改变(创建,下拉,更改等),您可以在一个单一的工作单元内完成工作,但需要具备可用的事务日志记录功能。因此,多个DDL语句可以是单个原子操作,这意味着如果其中一个失败,整个事务将回滚。根据宿主Db2(Z/OS,i-series,Unix/windows)和Db2版本的平台,对于在Db2需要重组之前可能发生的表的单独更改的数量有限制。这会影响您使用的ALTER语句的数量(例如,在单个语句中添加多个列)。
性能可能并不是决定如何对变更进行分组的因素。可恢复性,空间考虑,对象依赖性,退出,HA/DR考虑,变更窗口时间,可用性问题,调度,代码依赖性可以确定您使用的序列。一种尺寸不适合所有。