TCL-事務控制語言

一、事務的特性

ACID

原子性:一個事務不可再分割,要麼都執行要麼都不執行

一致性:一個事務執行會使數據從一個一致狀態切換到另外一個一致狀態

隔離性:一個事務的執行不受其他事務的干擾

持久性:一個事務一旦提交,則會永久的改變數據庫的數據.

 

二、事務的創建

隱式事務:事務沒有明顯的開啓和結束的標記

比如insert、update、delete語句

顯式事務:事務具有明顯的開啓和結束的標記

前提是必須先設置自動提交功能爲禁用

步驟1:開啓事務 set autocommit=0;

start transaction;可選的

步驟2:編寫事務中的sql語句(select insert update delete)

語句1;

語句2; ...

步驟3:結束事務 commit;

提交事務 rollback;

 

三、事務的隔離級別

 

髒讀

不可重複讀

幻讀

read uncommitted

read committed

 

repeatable read

 

 

serializable

 

 

 

mysql中默認第三個隔離級別:repeatable read

oracle中默認第二個隔離級別:read committed

查看隔離級別:select @@tx_isolation

設置隔離級別:set session|global transaction isolation level 隔離級別

session(當前mysql連接)、global(數據庫全局)

 

四、savepoint的使用

SET autocommit=0;

START TRANSACTION;

DELETE FROM account WHERE id=25;

SAVEPOINT a;#設置保存點

DELETE FROM account WHERE id=28;

ROLLBACK TO a;#回滾到保存點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章