萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql導入數據導數據提示Duplicate entryfor key 錯誤

mysql導入數據導數據提示Duplicate entryfor key 錯誤

mysql導入數據導數據提示Duplicate entryfor key 錯誤 下面我來分析一下我的解決方法,有需要學習的朋友可參考一下。

之前服務器數據丟失後決定搬家了用PHPMYADMIN導出,因為數據庫文件比較大,所以直接使用MYSQL命令直接導入

MySQL導出導入命令
但是結果卻不斷的出現

ERROR 1062 (23000) at line 1262: Duplicate entry '?�ꡣ�H�o' for key 2
然後就中止了.NND這家伙吃軟不吃硬。來硬的。。 --force。強行導入。不退出
# mysql -u root -p fukai --force < dmc010003_db.myisam.sql
Enter password:
ERROR 1062 (23000) at line 1262: Duplicate entry '?�ꡣ�H�o' for key 2
ERROR 1062 (23000) at line 1263: Duplicate entry 'm?oʙ�H�m' for key 2
ERROR 1062 (23000) at line 1271: Duplicate entry '?���^��΢Ц' for key 2
ERROR 1062 (23000) at line 5182: Duplicate entry '?�ꡣ�H�o' for key 2
ERROR 1062 (23000) at line 5187: Duplicate entry '?���^��΢Ц' for key 2
ERROR 1231 (42000) at line 7268: Variable 'sql_mode' can't be set to the value of 'NULL'

yingouqlj@qljlearnhost:/home/jump$ mysql uynetwork <z.sql -u root -p
Enter password:
ERROR 1062 (23000) at line 20449: Duplicate entry '??????' for key 1費解


上網查閱後有說使用-FORCE 強制導入

mysql uynetwork <a.sql -force -u root -p然後出現一大段錯誤
但是還是存在問題
最後發現原來在PHPMYADMIN導出的時候文件編碼是UTF-8的最後使用

 代碼如下 復制代碼

mysql uynetwork <p.sql -u root -p --default-character-set=utf8

總結

Duplicate entry...for key...的錯誤原因是主鍵的唯一值重復,在對數據庫進行修改、插入操作時,一但主鍵的唯一值重復就會報此錯誤,有時在表中存在多個主鍵時,對表操作仍然報此錯誤,是因為對該表的索引造成的。例如一個表中有 id1,id2兩個主鍵,但是在插入數據時已經存在了ff,11這樣一條紀錄,再插入ff,22這樣一條記錄應該是沒問題的,但是卻報出上面這個錯誤,導致的原因就是索引時只對id1這個字段進行了索引,沒有對id2進行聯合索引,所以在插入ff,22這條記錄時會報錯。

處理方法:在該表的Indexes中的index_1進行處理,加入另外一個主鍵就可以了。

copyright © 萬盛學電腦網 all rights reserved