
MySQL错误代码1062表示违反了主键或唯一键约束,具体为USER.PRIMARY键(表USER的主键)中存在重复值'1'。主键要求每条记录的值必须唯一,重复插入会导致此错误。
检查数据源中的主键重复 确认导入的数据文件中是否存在主键重复的记录。例如,若主键是自增ID,需检查是否有手动指定ID值且重复的情况。可通过以下SQL查询重复值:
SELECT 主键字段名, COUNT(*) FROM USER GROUP BY 主键字段名 HAVING COUNT(*) > 1;临时禁用约束检查(谨慎使用) 若确认重复数据需强制导入,可临时关闭外键和唯一约束检查,导入后再清理重复数据:
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
-- 执行导入操作
SET FOREIGN_KEY_CHECKS = 1;
SET UNIQUE_CHECKS = 1;修改导入方式
使用INSERT IGNORE或REPLACE语句避免冲突:
INSERT IGNORE:跳过重复记录,仅插入不存在的记录。REPLACE:删除旧记录后插入新记录(注意可能触发级联删除)。INSERT IGNORE INTO USER VALUES (1, 'name1');
-- 或
REPLACE INTO USER VALUES (1, 'name1');调整主键自增机制 若主键为自增字段,确保导入数据时不手动指定主键值,或重置自增计数器:
ALTER TABLE USER AUTO_INCREMENT = [新的起始值];