报错如题:Duplicate entry 'XXX' for key
意思是说有唯一约束,所以不能重复。
而我的情况是,有两个表:用户表A、职位表B,其中A表中有一个工号字段 : xxx , 是B表的外键。
当时我想往B表插入一条数据报了这个错,我一直以为是B表主键重复,反复确认都应该没有问题,
报错如题目,同时提示信息给了外键名。
而我的业务逻辑是插入B表前根据B表主键检查这条数据是否存在,如果存在就修改;否则插入。
检查数据发现,主键没有问题,但是B表中的外键 xxx 这一列,在B表中其它数据行已使用过了,重复的是这个字段。
于是,在插入B表前再加上根据 xxx 列检查,如果存在就删除,再重新插入,成功。
业务上就是,先检查这个用户是否有职位信息,再根据工号查是否已有数据,如果有则删除原记录,插入新的职位信息。