mysql先刪除后插入導致死鎖


所報的錯誤為:pymysql.err.OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting transaction')

 

產生這個問題的原因:

  多個線程同時執行,且是先刪除后插入,因為刪除獲取一種鎖,插入獲取一種鎖,而這兩種鎖都沒有解鎖,就會沖突,導致報錯,注意並不是所有的先刪除后插入都會報錯,具體參考:

  https://blog.csdn.net/weixin_34049948/article/details/87577738

產生錯誤的語句:

  goods_sn = '52142356'

  delete from goods where goods_sn = goods_sn

  insert into goods values(goods_sn,1,0)

注意:上面刪除語句的條件goods_sn和插入語句的goods_sn相同,或者相近,這和鎖的區間有關系,具體參考:

  https://blog.csdn.net/hellozhxy/article/details/80455092

 


免責聲明!

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



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