如果我有一个名为NAME的列,其值为“CLARK”并且我运行更新语句
update table1 set name = 'CLARK';
Oracle是否实际更新了列,还是忽略了update命令,因为值相同?
我发现了这个问题(Oracle, how update statement works),第一个答案暗示即使值相等也会发生更新。我也在SQL Developer中试过它并且它已经运行但我不知道是否真的发生了更新。
提前致谢。
答案 0 :(得分:4)
是的,Oracle确实更新了该列,即使它是相同的。
在一个非常简单的例子中,这没什么区别。但请考虑以下因素: -
此更新的这些方面表明该列实际上已更新。
当然,也许在值相同时会有一些优化,但作为Oracle的用户,这些都是不可见的。
答案 1 :(得分:2)
是的,即使实际值没有改变,所有行都会更新并触发所有触发器。