天天看點

Oracle事務控制總結

一、Oracle事務控制:

     1、組成單個邏輯工作單元的一系列操作被稱為事務。

     2、資料庫事務組成:

          1、0~多條DML語句

          2、1條DDL(Data Define Language)語句

          3、1條DCL(Data Control Language)語句

     3、事務特性(ACID):

          -原子性(Atornicity)

          -一緻性(Consistency)

          -隔離性(Isolation)

          -持久性(Durability)

     4、事務的開始和結束

      1、事務開始于第一條可執行語句

      2、事務結束:

         -遇到commit 或rollback語句

         -遇到DDL 或DCL語句

         -使用者會話結束

         -系統崩潰

   5、事務的送出和復原

        顯式的送出和復原操作是為了更好的保證資料的一緻性,下述情況下事務會被自動送出:

      -執行一個DDL語句

      -執行一個DCL語句

      -正常結束會話

     -會話異常終止/系統崩潰時事務被自動復原

     6、送出/復原前資料狀态

     -目前事務中資料狀态的改變是可以恢複的

     -目前事務中的DML操作結果隻對目前使用者(會話)可見,其它使用者(會話)看不到目前事務中資料狀态的改變,直到目前事務結束。

     -目前事務中DML語句所涉及到的行被鎖定,其它使用者(會話)不能對其進行修改操作。

     7、事務送出後資料狀态

     -資料的修改永久生效,不可再撤消

     -資料以前的狀态永久丢失,無法恢複

     -所有的使用者(會話)都将看到操作後的結果

     -記錄鎖被釋放,其它使用者可對這些進行修改操作

     -事務中的儲存點(savepoints)被清除

     8、事務復原後資料狀态

     -資料的修改被撤消

     -資料恢複到修改前的狀态

     -記錄鎖被釋放

     9、儲存點

         ---通過儲存點在目前的事務中建立标記,将來可回退到指定的标記(儲存點)處,實作事務的部分復原。

     ---用法舉例

       insert into dept values (22,'adf','BeiJing');

       insert into dept values (23,'fda','Shanghai');

       savepoint p1;

       insert into dept values (24,'gdf','Tianjing');

       select * from dept; 

       rollback to p1;

       select * from dept;