业务逻辑中有一个删除操作,其中有两条数据删除时报错Duplicate entry ‘xxx’ for key ‘PRIMARY‘
乍一看觉得不可思议,因为没有听说过DELETE语句会报错重复主键的,都是在INSERT和UPDATE语句时就会报错
去表里SELECT 查询了一下,只有一条数据,直接在库里执行DELETE语句,一样报错
百度了一圈,没啥收获
最后经过同事协助排查,发现由于该表设置了触发器导致的
由于之前有两张copy的备份表,三张表都设置了DELETE的触发器,会在删除数据时向同一张history表写数据,因此在备份表删过的数据会在history表里已经有了,且主键ID相同,因此删除另一张表里同一条数据时会报错Duplicate entry for key ‘PRIMARY‘。。。。(Mysql的报错提示要是能区分开就好了)
记录一次DELETE操作报错Duplicate entry for key 'PRIMARY'
原文:https://www.cnblogs.com/ruozhu/p/13324121.html