記錄一次DELETE操作報錯Duplicate entry for key 'PRIMARY'


業務邏輯中有一個刪除操作,其中有兩條數據刪除時報錯Duplicate entry ‘xxx’ for key 'PRIMARY'

 

 乍一看覺得不可思議,因為沒有聽說過DELETE語句會報錯重復主鍵的,都是在INSERT和UPDATE語句時就會報錯

去表里SELECT 查詢了一下,只有一條數據,直接在庫里執行DELETE語句,一樣報錯

 

 百度了一圈,沒啥收獲

最后經過同事協助排查,發現由於該表設置了觸發器導致的

 

 由於之前有兩張copy的備份表,三張表都設置了DELETE的觸發器,會在刪除數據時向同一張history表寫數據,因此在備份表刪過的數據會在history表里已經有了,且主鍵ID相同,因此刪除另一張表里同一條數據時會報錯Duplicate entry for key 'PRIMARY'。。。。(Mysql的報錯提示要是能區分開就好了)


免責聲明!

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



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