1. 程式人生 > >MYSQL事務的開啟與提交

MYSQL事務的開啟與提交

對於一個MYSQL資料庫(InnoDB),事務的開啟與提交模式無非下面這兩種情況:

1>若引數autocommit=0,事務則在使用者本次對資料進行操作時自動開啟,在使用者執行commit命令時提交,使用者本次對資料庫開始進行操作到使用者執行commit命令之間的一系列操作為一個完整的事務週期。若不執行commit命令,系統則預設事務回滾。總而言之,當前情況下事務的狀態是自動開啟手動提交。

2>若引數autocommit=1(系統預設值),事務的開啟與提交又分為兩種狀態:

①手動開啟手動提交:當用戶執行start transaction命令時(事務初始化),一個事務開啟,當用戶執行commit命令時當前事務提交。從使用者執行start transaction命令到使用者執行commit命令之間的一系列操作為一個完整的事務週期。若不執行commit命令,系統則預設事務回滾。

②自動開啟自動提交:如果使用者在當前情況下(引數autocommit=1)未執行start transaction命令而對資料庫進行了操作,系統則預設使用者對資料庫的每一個操作為一個孤立的事務,也就是說使用者每進行一次操作系都會即時提交或者即時回滾。這種情況下使用者的每一個操作都是一個完整的事務週期。