事務:sql
默認事務自動提交數據庫
觸發時機:測試
DML執行:數據庫操做語句的執行,例如insert,update,delete事務
DDL執行:數據定義語句date
SELECT查詢後結果集關閉後數據
存儲過程執行後(數據結果集返回後,事務關閉)查詢
事務隔離4大級別:存儲過程
讀未提交let
讀已提交delete
可重複讀
可串行化
不一樣隔離級別可能出現的問題
髒讀:A事務讀,B事務寫未提交,A事務能讀取B事務沒有提交的數據。
不可重複讀:A事務讀一行記錄,B事務修改這條記錄,A事務兩次讀取記錄結果不同。
幻讀:A事務第一次讀全部行記錄,B事務添加記錄提交,A事務會讀到新增這一行記錄。
注意:測試4種不能隔離級別,可能發現的問題時,必定記得把Mysql自動提交關閉
隔離級別指令:
設置:
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE]
查詢
SELECT @@TX_ISOLATION
自動提交指令:
關閉:
SET AUTOCOMMIT=1
開啓:
SET AUTOCOMMIT=0