• oracle数据库事务相关【weber出品必属精品】


    1. 事务的概念:
      事务:一个事务由一组构成一个逻辑操作的DML语句组成

      事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束。
      以下情况会使得事务结束:

      1. 执行COMMIT 或者 ROLLBACK 语句

      2. 执行DDL或者 DCL语句

      3. 用户退出

      4. 系统崩溃

    2.  一个事务可以包含下列语句:

      1. 对数据做出一致性修改的DML语句

      2. 一个 DDL 语句

      3. 一个 DCL语句

    3.   DDL与和DCL语句执行的过程:

      1. 首先发出COMMIT;

      2. 执行对数据字典的DML操作

      3. 如果成功,commit,如果失败,rollback

    4.  保证数据的一致性:没有提交的数据,其他的用户看不到

      在数据永久改变之前,检查数据的改变

      对逻辑相关的操作进行分组

    5.  控制事物:保存点(savepoint)
    6. SQL> select * from t;
       
      EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
      ----- ------ --------- ----- --------- ----- ----- ------
       7369 ALLEN  SALESMAN   7902 17-DEC-80  1600           20
          1 y                                  100
          2 w                                  100
       
      SQL> savepoint s1;
       
      Savepoint created.
       
      SQL> insert into t (empno,ename) values(3,'b');
       
      1 row created.
       
      SQL> savepoint s2;
       
      Savepoint created.
       
      SQL> delete t;
       
      4 rows deleted.
       
      SQL> select * from t;
       
      no rows selected
       
       
      SQL> rollback to savepoint s2;
       
      Rollback complete.
       
      SQL> select * from t;
       
      EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
      ----- ------ --------- ----- --------- ----- ----- ------
       7369 ALLEN  SALESMAN   7902 17-DEC-80  1600           20
          1 y                                  100
          2 w                                  100
          3 b                                  100
       
      SQL> rollback to savepoint s1;
       
      Rollback complete.
       
      SQL> select * from t;
       
      EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
      ----- ------ --------- ----- --------- ----- ----- ------
       7369 ALLEN  SALESMAN   7902 17-DEC-80  1600           20
          1 y                                  100
          2 w                                  100
       
      ----这里要注意了啊,因为rollback到了的s1这个保存点,也就不可以在rollback到s2这个保存点---因为s1中这个保存点没有记录到s2保存点的信息----
      SQL> rollback to savepoint s2;
      rollback to savepoint s2
      *
      ERROR at line 1:
      ORA-01086: savepoint 'S2' never established
    7.  
    8.  
  • 相关阅读:
    DROP,TRUNCATE 和DELETE的区别
    工作手记之Cransoft
    Java输入输出流
    上海植物园
    eclipse中开发android程序时,打开layout配置文件eclipse关闭
    Android SDK 2.2 开发环境搭建
    Android读取电话薄中的电话号码
    Android模拟器大小
    工作手记之Cransoft(二)
    工作手记之Cransoft(三)
  • 原文地址:https://www.cnblogs.com/yaoweber/p/3925589.html
Copyright © 2020-2023  润新知