2017-10-12 40 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考慮,變更窗口時間,可用性問題,調度,代碼依賴性可以確定您使用的序列。一種尺寸不適合所有。