mysql先刪除後插入導致死鎖
阿新 • • 發佈:2019-03-26
cti 插入語 adl err values 並不是 trying error 問題
所報的錯誤為: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
mysql先刪除後插入導致死鎖