mysql start transaction 和 set autocommit = 0 的區別

一、set autocommit = 0mysql

關閉當前會話中事務的自動提交,須要手動 commit 或者 rollback,至關於開啓一個全局的事務。在 mysql 的事務中,默認 autocommit = 1,每一次 sql 操做都被認爲是一個單次的事務,被隱式提交sql

二、start transaction數據庫

掛起 autocommit 的狀態,開啓一個事務上下文。首先數據庫會隱式提交以前的還未被提交的操做,同時開啓一個新事務。掛起 autocommit 的意思是保存 autocommit 的當前狀態,而後 start transaction,直到 commit or rollback 結束本次事務,再恢復以前掛起的 autocommit 的狀態。事務

若是 start transaction 前 autocommit = 1,則完成本次事務後 autocommit 仍是 1it

若是 start transaction 前 autocommit = 0,則完成本次事務後 autocommit 仍是 0,接下來的操做你仍需手動 commit 才能夠提交。io

相關文章
相關標籤/搜索