1. 程式人生 > >mysql先刪除後插入導致死鎖

mysql先刪除後插入導致死鎖

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先刪除後插入導致死鎖