Mysql
MariaDB InnoDB 不會在超時時回滾
我有ff。按此順序的範例查詢:
- 開始交易
- 更新
- 插入
- 犯罪
查詢 #2 超時,但我注意到查詢 #3 沒有回滾。
我還嘗試通過驗證(查詢表)在我送出之前是否通過更新來手動回滾。但是當我這樣做時,我得到一個明確的:
General error: 2006 MySQL server has gone away
錯誤。我的問題:
- 我已
innodb_rollback_on_timeout
設置為ON
,查詢#3 不應該回滾嗎?- 由於我什至不能手動回滾,我有什麼選擇?
注意:這是在 mariadb-10.4.17
什麼是客戶?它是否打開了“自動重新連接”?把它關掉。
我認為正在發生的事情:
- 呱呱叫(以
UPDATE
任何方式)並回滾。- 重新建立連接,可能使用
autocommit
.INSERT
執行成功並自動送出。- 被
COMMIT
默默地忽略。在每個SQL 語句之後進行錯誤檢查。