Oracle中的事务之savepoint
如果没有手动执行commit而是exit会自动提交。
定义
保存点(savepoint)是事务过程中的一个逻辑点,我们可以把事务回退到这个点,而不必回退整个事务。
语法
savepoint savepoint_name
这个命令就是在事务语句之间创建一个保存点。rollback命令可以撤销一组事务操作,而保存点可以将大量事务操作划分为较小的,更易于管理的组。
注意点
release savepoint命令
这个命令用于删除创建的保存点。在某个保存点被释放之后,就不能再利用rollback命令来撤销这个保存点之后的事务操作了。利用这个命令可以避免意外地回退到某个不再需要的保存点。
release savepoint savepoint_name;
一、基本概念
保存点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会自动提交。