#1062 – Duplicate entry '1' for key 'PRIMARY'
使用 phpMyAdmin 分批導入大量 SQL 時,第一批因超過限制中斷,但部分資料已寫入。後續批次重新導入時,自增主鍵從 1 開始,與已存在資料衝突。
TRUNCATE TABLE target_table;(保留結構、重置自增計數器)DELETE FROM target_table; + ALTER TABLE target_table AUTO_INCREMENT = 1;Discuz! info: MySQL Query Error
SQL: INSERT INTO cdb_posts ... VALUES ('45', '2727', ...)
Error: Duplicate entry '2678' for key 1
Errno.: 1062
ALTER TABLE cdb_posts CHANGE pid pid INT(10) UNSIGNED NOT NULL AUTO_INCREMENT — 重置定義無效REPAIR TABLE cdb_posts — 標準修復無效# 停止 MySQL 服務
systemctl stop mysqld
# 進入資料目錄
cd /var/lib/mysql/your_database
# 執行修復(-r 為恢復模式)
myisamchk -r cdb_posts.MYI
# 啟動服務驗證
systemctl start mysqld
mysqldump --single-transaction --master-data=2 獲得一致性快照,避免分批導入。SHOW TABLE STATUS 中的 Auto_increment 值與 MAX(id) 差距。