2010-01-06 4 views
1

CREATE TABLELOAD DATA을 사용하여 MySQL 5.1에 CSV 파일을로드하고 있습니다. 텍스트 형식 (범주)이지만 숫자 값을 포함하는 열이 있습니다. 테이블을 만들 때이 열을 VARCHAR(254)으로 지정하지만 JDBC 드라이버는 SQLException "행 1의 열 AgeGroup에 대해 잘린 데이터"를 throw합니다.로드 할 때 CSV에서 SQL LOAD DATA를 사용하여 열 유형을 사용할 수 있습니까?

내 데이터는 다음과 같습니다

ID,AgeGroup 
xxx,4 
xxy,3 
xyx,6 
... 

테이블 문이 내 부하 문이 나는 그것이 추측하고이

LOAD DATA INFILE \myfile.csv\ INTO TABLE abc FIELDS TERMINATED BY ',' 

처럼 보이는이

CREATE TABLE abc(ID VARCHAR(254), AgeGroup VARCHAR(254)) 

처럼 보이는 만들 내 AgeGroup은 텍스트 데이터베이스 열이기 때문에 형식 변환 문제가 있지만 숫자로 나타나는 부분을 고집하고 있습니다. 그것.

어떻게하면 LOAD DATA 명령이 열의 데이터 유형을 따르고 파일의 내용을 변환하도록 할 수 있습니까?

공식 MySQL JDBC 드라이버를 사용하고 있습니다.

답변

1

나는 이것이 효과가 없다는 것에 놀랐습니다. 내 말은, 나는이 행둥이 숫자 열에 문자열 값을 고집 할 때 기대할 것이다.

어쨌든, 당신은 당신의 원시 데이터로부터 임의의 식을 계산하기 위해 5.0에 소개 된 LOAD DATA 구문의 확장을 사용할 수 있습니다

LOAD DATA INFILE \myfile.csv\ 
INTO TABLE abc 
FIELDS TERMINATED BY ',' 
(@ID, @AgeGroup) 
SET ID = @ID 
, AgeGroup = CAST(@AgeGroup AS UNSIGNED) 

(참조 : http://dev.mysql.com/doc/refman/5.1/en/load-data.html