mysql #1062 –Duplicate entry '1' for key 'PRIMARY'

近日一直在折腾vps ,刚刚碰到在搬移wordpress过程中导入数据库的时候。碰到了

#1062 – Duplicate entry 1′ for key ‘PRIMARY

当时那个急啊,原本的数据我已经全部删除了,没办法只有请求万能的百度了。我找了大半天终于给我给我找到了。兴奋ing,马上测试,O(∩_∩)O哈哈~成功了。

现在附上解决办法只要把原来的老数据清空导入就可以了。

原理我不明白,贴上来你们自己看吧。反正达到目的就ok了、

“提示#1062 – Duplicate entry 1′ for key ‘PRIMARY了,后来才知道,原来上次超过限制的已经导进去了一部分,而id是主键,不能相同的,所以就不行了,把老的数据都删除,就可以重新导了。”

在此还要感谢那位博主,把解决办法发表了出来。要不然我可就麻烦了。

原文

今天遇到的问题,很简单,但也很常见,做个记录在此:
把数据从一个机器上导到另外一个机器上,因此记录太多,刚开始没注意,超过了phpmyadmin的限制,提示出错了,我把文件手动的给分成一些小文件,可是再导就提示#1062 - Duplicate entry 1 for key PRIMARY了,后来才知道,原来上次超过限制的已经导进去了一部分,而id是主键,不能相同的,所以就不行了,把老的数据都删除,就可以重新导了。

好了。你要是也碰到了跟我一样的问题,马上试试吧。不试不知道啊


Mysql进行数据备份,还原后进行回帖,出现以下错误代码:
Discuz! info: MySQL Query Error

User: webcull
Time: 2008-7-10 2:20pm
Script. /post.php

SQL: INSERT INTO [Table]posts (fid, tid, first, author, authorid, subject, dateline, message, useip, invisible, anonymous, usesig, htmlon, bbcodeoff, smileyoff, parseurloff, attachment)
VALUES (45, 2727, 0, webcull, 6, , 1216707030, ddd, 192.168.253.1, 0, 0, 0, 0, -1, -1, , 0)
Error: Duplicate entry 2678 for key 1
Errno.: 1062


网上搜索分析原因:
可能是字段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了!

mysql #1062 –Duplicate entry '1' for key 'PRIMARY'