首页 > 代码库 > oracle数据库事务相关【weber出品必属精品】

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.