3
DB2支持此語法:在德比一次更新多個列
UPDATE DEST D SET (AAA,BBB) = (
SELECT MAX(Z.AAA), MAX(Z.BBB) FROM OTHER O WHERE O.ID = D.ID
)
即我可以運行一個選擇返回多列,並將結果複製到目標表的各列(一更新)。
德比只允許語法:
UPDATE table-Name [[AS] correlation-Name]
SET column-Name = Value
[ , column-Name = Value} ]*
[WHERE clause]
這意味着我可以碰到問題時,我需要組選擇的結果以某種方式。是否有更好的解決方案,而不是將更新分成兩個語句,或者是在Java環路中進行本地化(即提交數百萬條UPDATE語句)?
我擔心副作用;當select子句更復雜時,這兩個語句可能會產生不同的結果嗎? – 2009-02-26 08:06:01