You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL导入SQL文件报错:PRIMARY键存在重复条目'1'的问题咨询

解决MySQL导入时"Duplicate entry '1' for key 'PRIMARY'"错误

没错,你碰到的这个错误百分百是主键ID重复导致的。当你尝试把cdrdata-oldsystem.sql里的cdrdata表数据导入到ucl_db的同名表时,目标表中已经存在一条主键ID为1的记录,而你要导入的SQL文件里也有一条ID为1的记录——MySQL的主键约束要求主键值必须唯一,冲突之下就抛出了这个报错。

给你几个实用的解决思路,根据你的实际需求选就行:

  • 清空目标表后重新导入:如果ucl_db.cdrdata里的现有数据对你没用,可以先彻底清空表再导入。执行这条SQL命令:

    TRUNCATE TABLE ucl_db.cdrdata;
    

    执行完再重新跑你的导入命令mysql -u root -p ucl_db < cdrdata-oldsystem.sql就行。注意:TRUNCATE会直接删除所有数据且无法恢复,操作前一定要确认数据不需要保留。

  • 修改导入SQL里的主键值:如果目标表的数据要保留,你可以打开cdrdata-oldsystem.sql文件,把所有INSERT语句里的主键ID改成目标表中不存在的数值。比如先查一下目标表的最大ID:

    SELECT MAX(id) FROM ucl_db.cdrdata;
    

    假设查到最大ID是1000,就把导入的所有ID改成1001及以上,这样就不会冲突了。

  • 用INSERT IGNORE跳过重复记录:把SQL文件里的INSERT替换成INSERT IGNORE,这样MySQL会自动跳过那些主键重复的记录,只导入不冲突的数据。缺点是重复主键的导入数据会被丢弃,适合你不需要这些重复数据的场景。

  • 用REPLACE INTO覆盖重复记录:如果希望用导入的数据替换目标表中主键重复的现有数据,就把INSERT改成REPLACE INTO。MySQL会先删除目标表中主键匹配的旧记录,再插入新的导入记录,适合需要更新数据的场景。

内容的提问来源于stack exchange,提问作者lin Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:32:00