Duplicate entry ‘XXX‘ for key

本文介绍了一种解决数据库插入时遇到的外键重复错误的方法。通过检查并删除已存在的外键值,确保数据的一致性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

报错如题:Duplicate entry 'XXX' for key 

 

意思是说有唯一约束,所以不能重复。

而我的情况是,有两个表:用户表A、职位表B,其中A表中有一个工号字段 : xxx , 是B表的外键。

当时我想往B表插入一条数据报了这个错,我一直以为是B表主键重复,反复确认都应该没有问题,

报错如题目,同时提示信息给了外键名。

 

而我的业务逻辑是插入B表前根据B表主键检查这条数据是否存在,如果存在就修改;否则插入。

检查数据发现,主键没有问题,但是B表中的外键 xxx 这一列,在B表中其它数据行已使用过了,重复的是这个字段。

 

于是,在插入B表前再加上根据 xxx 列检查,如果存在就删除,再重新插入,成功。

业务上就是,先检查这个用户是否有职位信息,再根据工号查是否已有数据,如果有则删除原记录,插入新的职位信息。

 

 

 

 

这个错误提示“Duplicate entry '3753207854989312' for key 'PRIMARY'”表示在插入数据时出现了主键重复的情况。主键是用来唯一标识一条记录的字段,所以不能出现重复的值。根据引用和的描述,可能的原因有两种可能性。 第一种可能是在插入数据时出现了主键冲突。可能是因为之前已经存在了一个具有相同主键值的记录。解决办法是删除该记录或者更新该记录的主键值,然后重新插入数据。 第二种可能是由于插入线程的频率较高,导致插入数据的顺序混乱。这种情况下,可以尝试减缓插入线程的速度,或者使用事务来保证插入的顺序。引用中提到了将现有数据表清空,重新导入数据的方法,也可以尝试这个方法来解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql #1062 –Duplicate entry ‘1’ for key ‘PRIMARY’](https://download.youkuaiyun.com/download/weixin_38545117/13691897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [数据库报duplicate entry XXX for key primary错误的原因以及解决方法](https://blog.youkuaiyun.com/wen_3370/article/details/126779387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [mysql #1062 –Duplicate entry '1' for key 'PRIMARY'](https://download.youkuaiyun.com/download/weixin_38536267/12835100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值