큰 (500 MB) * .csv 파일을 MySQL 데이터베이스로 가져 오려고합니다.LOAD DATA INFILE (* .csv) - 빈 셀을 무시하십시오.
그뿐만까지 해요 :
LOAD DATA INFILE '<file>'
REPLACE
INTO TABLE <table-name>
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
IGNORE 1 LINES (#Header
<column-name1>,
<column-name2>,
...
);
내가 (그것의 데이터 타입이 INT 인)이 coluns 중 하나에 문제가있을 수 - 내가 오류 메시지가 얻을 :
오류 코드 : 1366 잘못된 정수 값 : 행의 열에 '' '
이 줄은 * .csv 파일에서 보았습니다. 오류의 원인이되는 셀에는 공백이 있습니다 (예 : ... ;; ...).
이 열의 공백을 무시하도록 SQL에 알리는 방법은 무엇입니까?
* .csv 파일이 크기가 커서 나중에 더 큰 파일을 가져와야하므로 * .csv 파일을 편집하지 않는 것이 좋습니다. SQL 솔루션을 찾고 있습니다.
감사합니다.
[편집] 의 해결책이 :
LOAD DATA INFILE '<file>'
REPLACE
INTO TABLE <table-name>
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
IGNORE 1 LINES (#Header
<column-name1>,
<column-name2>,
@var1 #the variable that causes the problem
...
)
SET <column-name-of-problematic-column> = CASE
WHEN @var1 = ' ' THEN NULL
ELSE @var1
END
;
감사합니다! 작동했습니다! 설명서에서이 부분을 보았지만 설명대로 올바르게 할 수있었습니다. – speendo