事物在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的员工还存在,这就是回滚到某个点