oracle回滚和提交
在以下sql语句中:
BEGIN
update table1 set col1 = 'Y';
commit;
update table2 set col2 = 'Y';
rollback;
end;
/
它会回滚所有更新还是仅更新#2?
In the following sql statements:
BEGIN
update table1 set col1 = 'Y';
commit;
update table2 set col2 = 'Y';
rollback;
end;
/
Will it rollback both the updates or only update #2?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只是#2
您可能对保存点感兴趣
Just #2
You might be interested in save points
您的语句将仅回滚当前事务。即table2的更新。
当您发出提交时,您结束了 table1 事务的更新。
正如 vc74 所说,保存点是一个有用的工具,用于控制可以回滚到的位置,而无需发出提交等。
Your statement will rollback only the current transaction. i.e. the update of table2.
You ended the update of table1 transaction when you issued a commit.
As vc74 says, save points are a useful tool for controlling where you can rollback to without having to issue commits etc.