DB2如何使用alter table语句添加多个列?

3

DB2如何通过alter table语句添加多个列?它是按顺序添加列的吗?如果在添加列时遇到问题,会删除已添加的列吗?列的顺序是否保留?从性能角度考虑,一次为每个列调用alter table语句更好吗?

2个回答

3
您可以像这样一次性添加多个列:

您可以像这样一次性添加多个列:

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系列、Unix/windows)和Db2版本,表格中可以发生多少次单独的更改之前,Db2将需要重新组织可能存在限制。这可能会影响您使用的ALTER语句数量(例如,在单个语句中添加多个列)。

性能可能不是确定如何分组更改的关键因素。恢复能力、空间考虑因素、对象依赖性、回退、HA/DR考虑因素、更改时间窗口、可用性问题、调度、代码依赖性都可以决定您使用的顺序。一种尺寸并不适合所有情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接