【发布时间】:2012-01-23 21:02:44
【问题描述】:
我有一个包含 3000 万行的 PLSQL 表,我想更新所有行的字段。
我尝试了一个循环(将更新批量为 100000 行间隔),但我无法使用
update tableA set columnA=1 where rownum between lower and upper
循环在新的上限和下限之间移动,直到行数用完。
【问题讨论】:
我有一个包含 3000 万行的 PLSQL 表,我想更新所有行的字段。
我尝试了一个循环(将更新批量为 100000 行间隔),但我无法使用
update tableA set columnA=1 where rownum between lower and upper
循环在新的上限和下限之间移动,直到行数用完。
【问题讨论】:
为什么要迭代更新?为什么不想做一个简单的UPDATE
UPDATE tableA
SET columnA = 1
这不是更新大量行的最有效方法。它还生成最少数量的REDO 和UNDO。
【讨论】:
UPDATE 分成多个部分不会产生同样的错误?
UPDATE。