mysql 导入时错误 #1062 –Duplicate entry '1' for key 'PRIMARY'

今天遇到的问题,很简单,但也很常见,做个记录在此:
把数据从一个机器上导到另外一个机器上,因此记录太多,刚开始没注意,超过了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了! 
处理'1062 - Duplicate entry '1' for key 'PRIMARY''错误的关键在于确保在导入数据之前,目标MySQL数据库中没有与即将导入的数据中主键相同的记录。为了解决这个问题,可以按照以下步骤操作: 参考资源链接:[解决MySQL #1062 - Duplicate entry '1' for key 'PRIMARY' 错误](https://wenku.youkuaiyun.com/doc/64534d5cea0840391e7795bd?spm=1055.2569.3001.10343) 1. **备份现有数据库**:在进行任何操作之前,为了防止数据丢失,应该先使用phpMyAdmin或命令行工具备份目标数据库。这样,即使导入过程中出现问题,也可以将数据库还原到原始状态。 2. **检查和删除重复主键的记录**:在备份后,可以通过SQL查询来检查是否有重复的主键值存在。例如,如果你想检查`posts`表中的`id`字段是否有重复值,可以使用以下SQL查询: ```sql SELECT COUNT(*) FROM posts GROUP BY id HAVING COUNT(*) > 1; ``` 如果查询结果显示有重复的`id`,则可以使用如下SQL语句删除重复的记录,保留一条: ```sql DELETE p1 FROM posts p1 INNER JOIN posts p2 WHERE p1.id > p2.id AND p1.id = p2.id; ``` 注意:上述操作具有破坏性,删除数据前务必要确认数据的正确性。 3. **清空目标表数据**:在确认没有重复主键值后,可以清空目标表,以便为新数据腾出空间。使用如下SQL语句: ```sql DELETE FROM table_name; ``` 4. **导入数据文件**:使用phpMyAdmin或命令行导入新的SQL数据文件。确保导入过程中没有中断,以避免数据不一致的问题。 5. **检查数据一致性**:导入数据后,再次检查数据确保一切正常。可以通过查询特定表的记录数与预期相比较来确认。 以上步骤可以帮助你处理主键冲突的错误,并成功地将WordPress数据库导入到新的MySQL数据库中。为了更深入地理解这个过程,并学习更多关于MySQL数据库管理的知识,推荐阅读《解决MySQL #1062 - Duplicate entry '1' for key 'PRIMARY' 错误》一书。这本书为处理这类错误提供了详细的案例分析和解决方案,是数据库管理员不可或缺的资源。 参考资源链接:[解决MySQL #1062 - Duplicate entry '1' for key 'PRIMARY' 错误](https://wenku.youkuaiyun.com/doc/64534d5cea0840391e7795bd?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值