首页 > 学院 > 开发设计 > 正文

事务中savepoint的使用

2019-11-08 01:14:03
字体:
来源:转载
供稿:网友

来源:http://blog.csdn.net/haibusuanyun/article/details/11538507

保存点概念:

保存点就是为回退做的。

保存点的个数没有限制 ,保存点和虚拟机中快照类似

保存点是事务中的一点。用于取消部分事务,当结束事务时,会自动的删除该事务中所定义的所有保存点。当执行rollback时,通过指定保存点可以回退到指定的点。 回退事务的几个重要操作 1.设置保存点 savepoint a 2.取消保存点a之后事务 rollback to a 3.取消全部事务 rollback 注意:这个回退事务,必须是没有commit前使用的;如果事务提交了,那么无论你刚才做了多少个保存点,都统统没有。 如果没有手动执行commit,而是exit退出会话了,那么会自动提交 。开始实验:创建savepoint还原点SQL> set time on15:34:12 SQL> create table test(aa varchar(9));Table created15:44:04 SQL> insert into test values(1);1 row inserted15:44:36 SQL> savepoint a1;Savepoint created15:44:39 SQL> select * from test;AA---------115:45:05 SQL> insert into test values(2);1 row inserted15:45:10 SQL> savepoint a2;Savepoint created15:45:16 SQL> select * from test;AA---------1215:45:35 SQL> insert into test values(3);1 row inserted15:45:39 SQL> savepoint a3;Savepoint created15:45:44 SQL> select * from test;AA---------12315:45:46 SQL> insert into test values(4);1 row inserted15:45:56 SQL> savepoint a4;Savepoint created15:46:00 SQL> select * from test;AA---------123上面设置了4个保存点。

现在首先从第4个保存点后回退到第三个保存点

15:47:24 SQL> rollback to a3;Rollback complete15:47:33 SQL> select * from test;AA---------123

从第3个保存点回退到第一个保存点,直接跳过了第2个保存点。第二个保存点无效。

15:47:35 SQL> rollback to a1;Rollback complete15:47:52 SQL> select * from test;AA---------115:47:54 SQL> rollback to a2;rollback to a2ORA-01086: savepoint 'A2' never established in this session or is invalid

rollback将所有保存点或未提交事务都回退。

15:47:59 SQL> rollback;Rollback complete15:48:06 SQL> select * from test;AA---------15:48:08 SQL>
上一篇:1025.PAT Ranking (25)

下一篇:字母查找树

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表