2014-04-13 1 views
1

나는 다음과 같은 코드를 사용하여 MySQL 데이터베이스에 .csv 파일을로드하려고 :LOAD 데이터 INFILE은 0, NULL을, 그리고 공백을로드

ONE,TWO 
1,2 
:

LOAD DATA LOCAL INFILE 'c:/mytestfile.csv' INTO TABLE report.test 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
(ONE, TWO) 

.csv 파일의 모양을

그리고 report.test의 두 열은 모두 정수입니다.

SQL 코드를 실행할 때 report.test의 첫 번째 행에있는 두 값이 모두 0입니다. 이 파일을 실제 .csv 파일로 실행하면 행의 일부만 읽히고 0, NULL 및 공백으로 채워집니다.

설정이 어딘가요?


업데이트 1 - 사진을 게시하기에 충분한 평판이 없으므로 링크를해야했습니다.

Table Structure

Example File


업데이트 2

내가 사용하는 경우 :

LINES TERMINATED BY '\r\n' 

경고는 다음과 같습니다

'Warning','1366','Incorrect integer value: \'??\' for column \'ONE\' at row 1' 
'Warning','1366','Incorrect integer value: \'??\' for column \'TWO\' at row 1' 
'Warning','1262','Row 1 was truncated; it contained more data than there were input columns' 

내가 사용하는 경우 :

LINES TERMINATED BY '\n' 

경고는 다음과 같습니다

'Warning','1366','Incorrect integer value: \'??\' for column \'ONE\' at row 1' 
'Warning','1366','Incorrect integer value: \'??\' for column \'TWO\' at row 1' 
'Warning','1262','Row 1 was truncated; it contained more data than there were input columns' 
'Warning','1366','Incorrect integer value: \'?\' for column \'ONE\' at row 2' 
'Warning','1261','Row 2 doesn\'t contain data for all columns' 

답변

0

는 SQL 문이 잘 보인다.

열 머리글을 추가하기 때문에 첫 번째 행에 0이 추가됩니다. 첫 번째 줄을 무시하려면 IGNORE 1 LINES을 사용하십시오.

내가 왜 문제가 있는지 생각할 수있는 유일한 이유는 캐리지 리턴이없는 파일 때문입니다.

다음 문을 사용하여 테스트하십시오 응답에 대한

LOAD DATA LOCAL INFILE 'c:/mytestfile.csv' INTO TABLE report.test 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES 
(ONE, TWO) 
+0

감사합니다. 그것은 여전히 ​​0을 가져온다. – ScioSolutions

+0

실제 테이블 구조와 csv 파일의 샘플을 추가 할 수 있습니까? – Erico

+0

다른 아이디어? 나는 다른 라인 종단과 테이블 구조를 가지고 노려 보았고 아무 것도 작동하지 않는 것 같다. – ScioSolutions

관련 문제