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