zoukankan      html  css  js  c++  java
  • 事务中savepoint(保存点)的使用

    savepoint概念: 

    首先要知道savepoint就是为回退做的,savepoint的个数没有限制,savepoint和虚拟机中快照类似. savepoint是事务中的一点。用于取消部分事务,当结束事务时,会自动的删除该事务中所定义的所有保存点。

    当执行rollback时,通过指定保存点可以回退到指定的点。 
    回退事务的几个重要操作 
    1.设置保存点 savepoint a 
    2.取消保存点a之后事务 rollback to a 
    3.取消全部事务 rollback 

    注意:这个回退事务,必须是没有commit前使用的;


    如果事务提交了,那么无论你刚才做了多少个保存点,都统统没有。 如果没有手动执行commit,而是exit退出会话了,那么会自动提交 。
    开始实验:创建savepoint还原点
    SQL> set time on
    SQL> create table test(aa varchar(9));
    Table created
    SQL> insert into test values(1);
    1 row inserted
    SQL> savepoint a1;
    Savepoint created
    SQL> select * from test;
    AA
    ---------
    1
    SQL> insert into test values(2);
    1 row inserted
    SQL> savepoint a2;
    Savepoint created
    SQL> select * from test;
    AA
    ---------
    1
    2
    SQL> insert into test values(3);
    1 row inserted
    SQL> savepoint a3;
    Savepoint created
    SQL> select * from test;
    AA
    ---------
    1
    2
    3
    SQL> insert into test values(4);
    1 row inserted
    SQL> savepoint a4;
    Savepoint created
    SQL> select * from test;
    AA
    ---------
    1
    2
    3
    上面设置了4个保存点。

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

    SQL> rollback to a3;
    Rollback complete
    SQL> select * from test;
    AA
    ---------
    1
    2
    3

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

     SQL> rollback to a1;
    Rollback complete
    SQL> select * from test;
    AA
    ---------
    1
    SQL> rollback to a2;
    rollback to a2

    ORA-01086: savepoint 'A2' never established in this session or is invalid

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

     SQL> rollback;
    Rollback complete
    SQL> select * from test;
    AA
    ---------

    SQL> 

  • 相关阅读:
    Hibernate课程 初探一对多映射3-1 单向多对一简介
    Hibernate课程 初探一对多映射2-8 set元素属性
    Hibernate课程 初探一对多映射2-7 测试-修改和删除学生信息
    vue.js源码学习分享(二)
    vue.js源码学习分享(一)
    用百度地图做了一个输入地址查询经纬度的小例子
    今天碰到的400错误
    ajax同步
    json键的不能像值一样拼写的问题
    日期格式化
  • 原文地址:https://www.cnblogs.com/sgphappy2007/p/10459648.html
Copyright © 2011-2022 走看看