用于添加多个列的DB2 alter table语句如何工作?

时间:2017-10-12 18:45:30

标签: sql db2 alter-table

用于添加多个列的DB2 alter table语句如何工作?如果在添加列时遇到问题,是否按顺序添加列并删除已添加的列?列的顺序是否保留?是否更好地多次调用alter table语句,每个列一次,性能明智?

2 个答案:

答案 0 :(得分: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 :(得分:1)

使用Db2,DDL(包括alter table)处于事务控制之下,因此如果要进行多次更改(创建,删除,更改等),您可以在单个工作单元中执行此操作,但需遵循可用的事务日志记录容量。因此,多个DDL语句可以是单个原子操作,这意味着如果其中一个失败,则整个事务将被回滚。

根据托管Db2(Z / OS,i-series,Unix / windows)和Db2版本的平台,在Db2需要重组之前可能发生的对表的单独更改的数量有限制。这可能会影响您使用的ALTER语句的数量(例如,在单个语句中添加多个列)。

性能可能不是您对更改进行分组的决定因素。可恢复性,空间注意事项,对象依赖性,退出,HA / DR注意事项,更改窗口时序,可用性事项,调度,代码依赖性,可以确定您使用的顺序。一种尺寸并不适合所有人。