一、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;