首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlimport和“重复输入”错误

mysqlimport和“重复输入”错误
EN

Server Fault用户
提问于 2011-04-09 09:42:47
回答 1查看 2.9K关注 0票数 0

我过去经常为MyISAM表使用mysqlimport,没有任何问题。但是现在我想将数据导入到InnoDB表中,并面临以下问题: mysqlimport报告了以下错误,不会导入任何内容:

代码语言:javascript
复制
mysqlimport: Error: 1062, Duplicate entry '1' for key 'PRIMARY', when using table: ...

..。我不知道如何解决这个错误。要将数据导入的表是新创建的,没有任何数据。该表如下所示:

代码语言:javascript
复制
CREATE TABLE `member` (
    `member_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID of Member',
    ...
    PRIMARY KEY (`member_id`),
    ...
) ENGINE=InnoDB;

我想要导入的数据包括"member_id",它在表中定义为"auto_increment“。当然,在csv文件中没有重复的'member_id‘--我已经三次检查了这个。这会不会在导入MySQL时引起任何错误.如果是这样的话:我如何解决这个问题?

MySQL服务器版本为: 5.5.8

EN

回答 1

Server Fault用户

回答已采纳

发布于 2011-04-11 06:27:38

在玩了整个周末之后,我得出结论,mysqlimport不是用于InnoDB表的:

我可以用一个简单的1列表和一行来重现问题.我能够通过关闭自动增量并在导入后重新启用它来修复这个问题。然而,我遇到了其他问题:

mysqlimport会抱怨外键约束,并拒绝导入表,即使所有的表和行都依赖于可用的表和行。所以: mysqlimport不能工作,但是INSERT语句的数据是相同的。

解决这个问题的方法很简单,就像不使用mysqlimport一样。相反,请使用LOAD DATA INFILE语句:

代码语言:javascript
复制
mysql -u <user-name> -p<password> --host=<host> --port=<port> -e "\
    USE <database-name>; \
    SET FOREIGN_KEY_CHECKS = 0; \
    LOAD DATA INFILE '<csv-file-name>' \
    INTO TABLE <table-name> (<comma-separated-list-of-column-names>); \
    SET FOREIGN_KEY_CHECKS = 1;"
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/257673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档