萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysqldump導庫出錯 Duplicate entry ” for key 1

mysqldump導庫出錯 Duplicate entry ” for key 1

Duplicate entry key 1錯誤是告訴我們數據有重復數據導入並且指定的字段為唯一字段了,下面我們就此問題分析一下吧,希望能幫助到各位。


mysqldump導庫出錯 Duplicate entry ” for key 1
這個數據庫備份是用後台自帶的備份程序備份的,400多M,比較大,所以沒用phpmyadmin導入,進入cmd ,mysql -h localhost -u root -p 數據庫名<”備份的sql文件路徑”,卻出錯:ERROR 1062 (23000) at line 501: Duplicate entry ” for key 1,然後自動停止導入,回滾到原先狀態了,我日啊!
這是什麼問題引起的啊,上百度,上gg,也找不到好的解決辦法,只好   mysql -h localhost -u root -p 數據庫名<”備份的sql文件路徑” –f 出錯也會繼續導入了。

上網搜到了這條,先copy下來,慢慢研究:

ERROR 1062 (23000) at line 501: Duplicate entry ” for key 1 ERROR 1062 (23000): Duplicate entry 是什???啊? mysql> INSERT INTO userinfo VALUES (‘崔江虎 ‘, ’20030481′, ’2004B_8600661_03′, ”, ”, ”, ’2004B_8600661_03′);
ERROR 1062 (23000): Duplicate entry ’20030481′ for key 1
mysql> INSERT INTO userinfo VALUES (‘唐斌 ‘, ’20023109′, ’2004B_8600661_03′, ”, ”, ”, ’2004B_8600661_03′);
ERROR 1062 (23000): Duplicate entry ’20023109′ for key 1
mysql>
Re: ERROR 1062 (23000): Duplicate entry 是什???啊?
你的userinfo的第二??field要求是unique的,而你的table?已?有了一?l??,它的第二??field的值是20023109
跟你要insert的那?l??的第二??field的值是相同的

 

網上搜索分析原因:

可能是字段pid為primary key且auto_increment屬性,不能出現重復值。
而我在備份數據時,可能有數據寫入破壞了數據表。


嘗試了一些方法:

1、數據表部分字段屬性丟失 ALTER TABLE `cdb_posts` CHANGE `pid` `pid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT
2、repair table cdb_posts
均失敗!

最後的解決方法:
一般是因為數據表文件損害導致,可用MySQL的修復工具myisamchk 工具修復。
cmd
myisamchk cdb_posts.myi -r
修復數據表就OK了!

解決辦法

現在附上解決辦法只要把原來的老數據清空導入就可以了。

copyright © 萬盛學電腦網 all rights reserved