mysql - InnoDB存儲引擎 死鎖問題( Deadlock found when trying to get lock; try restarting transaction )


剛剛向數據庫插入數據的時候出現了這么一段錯誤

Deadlock found when trying to get lock; try restarting transaction

主要原因(由於無法使用專業術語進行表達,所以只能抽象的講一下):詳細可見:官方文檔

  A和B都在進行事務操作,A的某些操作鎖定了B的一些資源,未提交事務,而此時,B需要更新數據,也鎖定了A的某些資源,這時雙方都在等待對方釋放資源,於是產生死鎖。(跟外鍵有關系)

解決方案:

  1. 刪除外鍵

  2. 必須得是一方先 commit 之后,另一方再執行,insert / delete / update 等操作

注意事項:

  進行一次數據操作時,立即提交事務,不要讓未提交的事務長時間打開,避免產生沖突


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM