mysql事務(二)——控制語句使用
阿新 • • 發佈:2017-08-30
spa alt ted clas 數據行 ble 事務提交 一般來說 tran
事務控制
一般來說,mysql默認開啟了事務自動提交功能,每條sql執行都會提交事務。可以使用如下語句關閉事務自動提交功能。
show session variables like ‘autocommit‘; set @@autocommit = 0; show session variables like ‘autocommit‘;
1、 事務開始
begin或start transaction;
2、 事務提交
commit或commit work;
3、 回滾
rollback或rollback work;
4、 保存點設置
savepoint 標識;
5、 回滾到保存點
rollback to savepoint 標識;
6、 刪除保存點
release savepoint 標識。
事務隔離
READ-UNCOMMITTED 讀未提交
READ-COMMITTED 讀已提交
REPEATABLE-READ 重復讀
SERIALIZABLE 序列化
|
臟讀 |
不可重讀 |
幻讀 |
READ-UNCOMMITTED |
Y |
Y |
Y |
READ-COMMITTED |
N |
Y |
Y |
REPEATABLE-READ |
N |
N |
Y |
SERIALIZABLE |
N |
N |
N |
臟讀:讀取的數據為另一個事務過程數據,讀取數據可能是錯誤的。
不可重讀:第二次讀取數據內容與第一次讀取數據內容不同。(不存在讀取事務過程數據)
幻讀:第二次讀取數據行數比第一次讀取行數多或少。(不存在讀取事務過程數據)
mysql事務(二)——控制語句使用