MySQL的奇怪的问题,同时导入大型文件:复制关键“主要”入口(MySQL weird issue

2019-10-16 20:26发布

我的托管公司要我从MySQL 4服务器迁移到MySQL 5.5的。 我的数据库是比较大的为我的网站上举办了近200,000注册用户的数据。

我做了使用phpMyAdmin我所有的表的出口,现在我想将它们导入到新的服务器。 一切都很好,直到我试图导入“用户”表。 有关信息,这里是它的结构:

CREATE TABLE IF NOT EXISTS `user` (
`login` varchar(32) NOT NULL DEFAULT '',
`firstname` varchar(255) NOT NULL DEFAULT '',
`lastname` varchar(255) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
...
PRIMARY KEY (`login`),
KEY `country_code` (`country_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

没有壮观吧? 使用phpMyAdmin的进口片,我上传的SQL文件。 突然,我得到了以下错误:

#1062 - Duplicate entry 'Jobi' for key 'PRIMARY' 

我立刻询问用户名登录的人是“薏苡”的数据库和搜索。 没有比赛!

我看了一下它产生的错误,并试图做手工查询...

INSERT INTO `ft_user`
  (`login`, `firstname`, `lastname`, `email`, ...)
VALUES
  ('Jobi', 'Lorem-First', 'Ipsum-Last', 'xxxxx@yyyy.com', ...);

和它的工作就好了!

我做我的开发机器上测试,并得到了同样的错误。 有人能解释我什么,我做错了什么?

先感谢您。 任何帮助非常感谢。

埃尔韦。

Answer 1:

如果输入文件包含具有相同主键值的记录的两个副本,当交易被回滚该密钥将不再存在,你可以得到这个错误,但随后。 重复检查您输入文件。



Answer 2:

在phpMyAdmin,在设置选项卡,你可以尝试检查以下值:

设置 - > SQL查询 - >忽略多个语句错误如果您使用的是CSV格式:

设置 - >导入 - > CSV - >如果您使用的是SQL格式不要在INSERT错误中止:

设置 - >导出 - > SQL - >使用插入忽略



文章来源: MySQL weird issue while importing a large file: Duplicate entry for key 'PRIMARY'