文章目錄
- 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')