在以下sql语句中:
BEGIN
update table1 set col1 = 'Y';
commit;
update table2 set col2 = 'Y';
rollback;
end;
/
它会回滚两个更新还是仅更新#2?
答案 0 :(得分:5)
只是#2
您可能对save points
感兴趣答案 1 :(得分:2)
您的语句将仅回滚当前事务。即更新table2。
您在发出提交时结束了table1事务的更新。
正如vc74所说,保存点是一个有用的工具,用于控制可以回滚的位置而无需发出提交等。