密钥'PRIMARY'重复输入

时间:2012-03-20 16:10:06

标签: mysql sql-server import

我尝试将csv(即SQL Server数据库中的数据提取)导入MySQL。

我使用此命令加载文件:

LOAD DATA INFILE '/Users/Tyler/Desktop/playersToTeams.txt' INTO TABLE players_to_teams FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

我收到了这个错误:

Error Code: 1062. Duplicate entry '124547' for key 'PRIMARY'

当我跑步时:grep 124547 playersToTeams.txt

119683,True,True,124547,1493,2011-08-31 02:22:56.630000000,,,,,http://bucknellbison.cstv.com///sports/m-wrestl/mtt/stolfi_joe00.html,,,,,,
124547,True,True,129411,14726,2011-08-31 02:22:56.630000000,Free/Breast,,,,http://usctrojans.collegesports.com/sports/m-swim/mtt/walling_emmett00.html,,,,,,

我可以看到第一个条目的第4列与第一列(pk,id)的编号相同,但第4列上没有任何索引。

这是由sql workbench创建的创建模式:

CREATE TABLE `players_to_teams` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `IsActive` tinyint(1) DEFAULT NULL,
  `IsVisible` tinyint(1) DEFAULT NULL,
  `PlayerId` int(11) DEFAULT NULL,
  `TeamId` int(11) DEFAULT NULL,
  `CreationDate` datetime DEFAULT NULL,
  `Position` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `Number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `Club` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `BT` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `BioLink` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `OtherBioLink` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `StartYear` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `EndYear` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `NeulionPlayerID` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `SeasonYear` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `GamesPlayed` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=124549 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci$$

如果我重新运行LOAD DATA命令而没有改变任何内容,我会得到一个不同的错误,这次数字比前一次多了2次(124549对124547)。再次运行它会跳至124552。

任何想法导致此重复错误的原因是什么?

由于

1 个答案:

答案 0 :(得分:1)

文件格式不正确。考虑到这一点,向@Vapire道具。