Oracle 关于事物的描述

事物在Oracle中的4种状态:

commit--提交

rollback--全部回滚

savepoint name;--定义一个回滚到这里的点:例如:savepoint a;

rollback to [savepoint]name--回滚到指定的点 例如 rollback to a;就回滚到a这个地方

例子:

--------------------------------------------例子1:
 
--第一步:复制一个emp的新表【cemp】包括数据 ;//一共14行
create table cemp as select * from emp;
--第二步:删除
delete from cemp where sal>2500;//删除一些行
--第三步:
rollback;//这里全部回滚,查询后还是14行
 
---------------------------------------------例子2:
--第一步:删除部门编号是10的员工
delete from cemp where deptno=10;
 
--第二步:再删除部门编号是20的员工
delete from cemp where deptno=20;
 
--第三步:设置一个回滚点a
SAVEPOINT a;
 
--第4步:再删除部门编号是30的员工,现在员工表空了
delete from cemp where deptno=30;
--commit;--如果这里提交后面的回滚将没有意义
--第5步:回滚到【a】这个回滚点
ROLLBACK to a;<br>
--如果出错,全部回滚;
EXCEPTION
  rollback;
END;
select *from cemp;--将会看到deptno=30的员工还存在,这就是回滚到某个点

  

  

原文地址:https://www.cnblogs.com/Evan-Pei/p/4673932.html