我的桌子上有很多记录(可能超过500 000或1 000 000)。我在此表中添加了一个新列,我需要使用该表中另一列的相应行值为该列中的每一行填充一个值。
我尝试使用单独的事务来选择每100条记录的下一个块并为其更新值,但是例如,要花费数小时来更新Oracle10中的所有记录。
在不使用某些方言特定功能的情况下,在SQL中执行此操作的最有效方法是什么,因此它可在任何地方(Oracle,MSSQL,MySQL,PostGre等)使用?
其他信息:没有计算字段。有索引。使用生成的SQL语句逐行更新表。
通常的方法是使用UPDATE:
UPDATE mytable SET new_column = <expr containing old_column>
您应该能够完成这笔交易。