日期:2014-05-16  浏览次数:20378 次

Oracle中的事务之savepoint

一、基本概念

保存点savepoint是事务中的一点,通过rollback可以返回到某个保存点。一个事务中可以有多个保存点。一旦事务提交,该事务中的保存点会自动被删除,那么无论刚才做了多少个保存点,都统统没有了。

SQL> savepoint sp;

Savepoint created

SQL> delete from mytable;

15 rows deleted

SQL> rollback to sp;

Rollback complete

SQL> select count(*) from mytable;

? COUNT(*)

----------

????15

删除操作就被回退了。

二、详解

事务的几个重要操作:

1 设置保存点 savepoint a

2 取消部分事务 rollback to a

3 取消全部事务 rollback

若执行SQL> commit;提交操作,则该事务中所有保存点都不存在了。如果没有手动执行commit而是exit会自动提交。