2012-03-20 2 views
1

SQL Server db에서 추출한 csv를 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 워크 벤치에 의해 생성 된 생성 스키마이다 : 나는 LOAD DATA 명령을 다시 실행하면

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$$ 

는 아무것도 변경하지 않고, 내가 다른 오류가 발생,이 시간은 수 (124549 이전 시간보다 2 이상이다 124547 대). 다시 실행하면 124552로 건너 뜁니다.

이 중복 오류의 원인은 무엇입니까?

감사

+1

'LOAD DATA' 명령을 다시 실행하기 전에 항상 테이블을 잘라 버렸습니까? 텍스트 파일의 형식이 올바른지 확인하십시오. 모든 행마다 동일한 수의 열이 있습니까? 텍스트 파일 자체가 UTF-8입니까? – Vapire

+0

텍스트에 빈 줄이 있거나 ID가 비어있는 줄이 있는지 확인할 수 있습니까? 아마도 Auto_increment와 관련이 있습니다. – flo

+0

@Vapire - 네, 항상 LOAD DATA를 실행하기 전에 테이블을 비 웁니다. 열 수 및 인코딩 수를 확인하는 방법에 대한 아이디어가 있습니까? –

답변

1

파일이 잘못 포맷되었습니다. 그 생각을하기 위해 @Vapire의 소품.