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'
- --Vevb.com
- 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進行處理,加入另外一個主鍵就可以了。
新聞熱點
疑難解答