文章目录
- 1. 错误原因分析
- 2. 快速解决方法
- 场景1:手动插入重复值
- 场景2:自增主键冲突
- 场景3:批量插入冲突
- 3. 长期预防策略
- 4. 高级排查技巧
该错误通常由主键冲突引起,表示尝试插入或更新的主键值已存在于表中。以下是分步排查和解决方法:
1. 错误原因分析
- 主键唯一性约束:表的主键(如
id
)不允许重复值。 - 可能场景:
- 手动插入已存在的主键值(如
INSERT INTO users (id, name) VALUES (1, 'Alice')
)。 - 自增主键因重置或复制导致冲突(如
AUTO_INCREMENT
值与现有数据重复)。 - 批量操作(如
INSERT INTO ... SELECT
)中包含重复主键。
- 手动插入已存在的主键值(如
2. 快速解决方法
场景1:手动插入重复值
- 问题:显式指定了已存在的主键。
- 解决方案:
-- 检查是否存在该主键 SELECT * FROM your_table WHERE id = 1;-- 若存在,修改插入值或删除原有记录 INSERT INTO your_table (id, name) VALUES (2, 'Alice')