记录一次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的报错提示要是能区分开就好了)

posted @ 2020-07-16 18:05  阿竹  阅读(1470)  评论(0编辑  收藏  举报