1

我的托管公司希望我从 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' 

我立即查询数据库并搜索登录为“Jobi”的用户名。不匹配!

我查看了生成错误的查询并尝试手动执行...

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

它工作得很好!

我在我的开发机器上进行了测试并得到了同样的错误。有人可以解释一下我在这里做错了什么吗?

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

赫维。

4

2 回答 2

1

如果输入文件包含具有相同主键值的记录的两个副本,您可能会收到此错误,但是当事务回滚时,该键将不再存在。检查您的输入文件是否有重复项。

于 2012-06-12T06:06:35.543 回答
0

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

Settings -> SQL Queries -> Ignore multiple statement errors 如果您使用的是 CSV 格式:

Settings -> Import -> CSV -> Do not abort on INSERT error 如果您使用的是 SQL 格式:

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

于 2014-08-30T12:43:47.603 回答