MySQL 交易主要用於處理操作量大,複雜度高的資料。比如說,在人員管理系統中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些資料庫操作語句就構成一個事務。
START TRANSACTION 或BEGIN 開始新的交易COMMIT 提交當前事務ROLLBACK 回滾目前事務
這是大家熟知的一種方式,其中開啟事務的方式start transaction 和begin 是相同的。
SET autocommit = 0;
預設為 autocommit = 1,是自動提交交易的。 autommit 是 session 等級的,就是目前連線更改了 autocommit,對其他連線沒有影響。設定 autocommit 之後,本次連接的所有 sql 都是事務的形式,例如每次 commit 提交。
透過截圖可以看出,有一個交易在執行,因為設定了set autocommit = 0;,所以後面的update 操作修改結果,其他session 並不會查到(RR 級別)。
這時候就需要自己手動執行 commit。
注意的是,autocommit 沒有進行更改,此時 autocommit 值還是 0,也就表示這個 session 後續的 sql 都是需要手動 commit 的。
以上是MySQL事務實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!