2012-03-20 39 views
1

私はcsv(SQL Serverデータベースからのデータ抽出)をMySQLにインポートしようとしています。キー 'PRIMARY'の重複エントリ

私は、ファイルをロードするには、このコマンドを使用してい

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番目の列はhそれの上にインデックスの任意の並べ替え。

ここでは、SQLワークベンチで作成された作成スキーマです:

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

「LOAD DATA」コマンドを再度実行する前に必ずテーブルを切り捨てたのですか?あなたのテキストファイルは整形されていますか?すべての行に同じ数の列がありますか?テキストファイル自体はUTF-8ですか? – Vapire

+0

テキストに空白行があるか、idが空の行があるかどうかを確認できますか?おそらく、それはAuto_incrementと関係があります。 – flo

+0

@Vapire - そうです、私は常にLOAD DATAを実行する前にテーブルを空にしました。列数とエンコーディングをチェックする方法に関するアイデアはありますか? –

答えて

1

ファイルがフォーマットされていません。そのことを考えるための@Vapireへの小道具。

関連する問題