前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
報錯如題:Duplicate entry 'XXX' for key?
?
意思是說有唯一約束,所以不能重復。
而我的情況是,有兩個表:用戶表A、職位表B,其中A表中有一個工號字段 : xxx , 是B表的外鍵。
當時我想往B表插入一條數據報了這個錯,我一直以為是B表主鍵重復,反復確認都應該沒有問題,
報錯如題目,同時提示信息給了外鍵名。
?
而我的業務邏輯是插入B表前根據B表主鍵檢查這條數據是否存在,如果存在就修改;否則插入。
檢查數據發現,主鍵沒有問題,但是B表中的外鍵 xxx 這一列,在B表中其它數據行已使用過了,重復的是這個字段。
?
于是,在插入B表前再加上根據 xxx 列檢查,如果存在就刪除,再重新插入,成功。
業務上就是,先檢查這個用戶是否有職位信息,再根據工號查是否已有數據,如果有則刪除原記錄,插入新的職位信息。
?
?
?
?