3步打造Trilium Notes多设备同步:构建无缝知识管理体验
2026/4/13 12:54:27
MySQL错误代码1062表示违反了主键或唯一键约束,具体为USER.PRIMARY键(表USER的主键)中存在重复值'1'。主键要求每条记录的值必须唯一,重复插入会导致此错误。
检查数据源中的主键重复
确认导入的数据文件中是否存在主键重复的记录。例如,若主键是自增ID,需检查是否有手动指定ID值且重复的情况。可通过以下SQL查询重复值:
SELECT主键字段名,COUNT(*)FROMUSERGROUPBY主键字段名HAVINGCOUNT(*)>1;临时禁用约束检查(谨慎使用)
若确认重复数据需强制导入,可临时关闭外键和唯一约束检查,导入后再清理重复数据:
SETFOREIGN_KEY_CHECKS=0;SETUNIQUE_CHECKS=0;-- 执行导入操作SETFOREIGN_KEY_CHECKS=1;SETUNIQUE_CHECKS=1;修改导入方式
使用INSERT IGNORE或REPLACE语句避免冲突:
INSERT IGNORE:跳过重复记录,仅插入不存在的记录。REPLACE:删除旧记录后插入新记录(注意可能触发级联删除)。INSERTIGNOREINTOUSERVALUES(1,'name1');-- 或REPLACEINTOUSERVALUES(1,'name1');调整主键自增机制
若主键为自增字段,确保导入数据时不手动指定主键值,或重置自增计数器:
ALTERTABLEUSERAUTO_INCREMENT=[新的起始值];