MySQL的自動提交模式

2021-08-31 15:54:07 字數 1631 閱讀 8855

預設情況下, mysql啟用自動提交模式(變數autocommit為on)。這意味著, 只要你執行dml操作的語句,mysql會立即隱式提交事務(implicit commit)。這個跟sql server基本是類似的。

檢視autocommit模式

由於變數autocommit分 會話系統變數與全域性系統變數,所以查詢的時候,最好區別是會話系統變數還是全域性系統變數。

value的值為on,表示autocommit開啟。off表示autocommit關閉。

修改autocommit模式

注意,上述sql修改會話系統變數或全域性系統變數,只對當前例項有效,如果mysql服務重啟的話,這些設定就會丟失,如果要永久生效,就必須在配置檔案中修改系統變數。

[mysqld]

autocommit=0

不過網上還有種方式,如下所示,我在mysql 5.6/5.7下測試,發現不生效,查了一下,這種方式似乎從mysql 5.6開始已經不生效了,必須用autocommit=0這種方式替換。

[mysqld]

init_connect='set autocommit=0'

autocommit與顯性事務的關係

對於顯性事務start transaction或begin, 在自動提交模式關閉(關閉隱式提交)的情況下,開啟乙個事務上下文。首先資料庫會隱式提交之前的

還未被提交的操作

,同時開啟乙個新事務。如有不明,可以用下面小實驗理解一下:

測試如下所示:

此時在會話2中檢視,此時可以查詢到會話id為1的事務資訊, 如下所示

如果在會話1當中開啟顯性事務,那麼之前掛起的事務會自動提交,然後,你再去會話2當中查詢,就發現之前的delete操作已經提交。

使用start transaction,自動提交將保持禁用狀態,直到你使用commit或rollback結束事務。 自動提交模式然後恢復到之前的狀態(如果start transaction前 autocommit = 1,則完成本次事務後 autocommit 還是 1。如果 start transaction 前 autocommit = 0,則完成本次事務後 autocommit 還是 0)

mysql的自動提交的設定

問題1 如何檢視mysql的自動提交的設定?select autocommit 檢視預設提交的狀態是否是自動提交 0手動提交 1 自動提交 問題2 怎麼設定autocommit set autocommit 0 設定的是本次mysql 視窗的自動提交取消,不影響別的連線的自動提交 檢視怎麼鎖定了行鎖...

mysql自動提交的概念 MySQL入門之事務概念

mysql預設是自動提交的,也就是你提交乙個query,它就直接執行!我們可以通過 set autocommit 0 禁止自動提交 set autocommit 1開啟自動提交 mysql中innodb引擎才支援事務處理,預設是自動提交的 另外一種常用的myisam引擎是不支援事務的,本身就沒有事務...

webbrowser的自動提交

試了半天,用幫助中說的方法 乙個 html 文件可能有乙個或多個form元素,其中包含用於將資料提交回伺服器的輸入字段。可以通過程式設計的方式提交form,方法是 獲取它的 htmlelement,並使用 invokemember 方法呼叫它的submit方法。但是總是不行,於是乾脆對button1...