2011-09-12 4 views
1

mysql 데이터베이스의 테이블에 CSV 파일을 가져 오려고합니다. 테이블에는 INT, VARCHAR(20), TIMESTAMP, TIMESTAMP 및 일련의 TINYTEXTVARCHAR(4)의 일련 번호가있는 141 개의 열이 있습니다.mysql> 오류 1265 : 행 1에서 열 'xxx'에 대한 데이터 잘림

데이터가 VARCHAR(4) 인 데이터에 대해 이 아닌이 4자를 넘는 열에서 잘린 데이터가 7 개 있습니다.

나는 IGNORE을 계속 사용하려고 시도했지만, 그 다음에는 다른 세포가 미친 듯이 잘리고 테이블 전체에 흩어져있었습니다.

SQL을 실행하기 위해 MS 2008 R2 서버에서 명령 줄을 사용하고 있습니다. csv 파일은 Db의 디렉토리에 있습니다.

P. 나는 mysql + import 나 mysql + data가 잘린 (1265)와 관련된 다른 게시물과 구글 결과를 읽었지만이 특별한 이슈를 다루지는 않았다.

감사합니다.

편집 : 나는 내가 한 번에 하나의 행, 그것은 잘 작동 INSERT 경우 때문에 ...

가져 오기에 대한 나의 SQL 인 LOAD DATA 기능을 함께 할 수있는 뭔가가 꽤 확신 :

LOAD DATA INFILE '2011-09.csv' IGNORE INTO TABLE `survey`.`2011-09` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; 
+0

100+ varchar/text 열,이 테이블에 무엇을 저장 하시겠습니까? 나쁜 DB 설계와 같은 냄새 –

+0

은 120 가지 질문 설문 결과입니다. 그들은 이전에 628 개의 텍스트 열이있는 테이블을 가지고있었습니다. 말할 필요도없이 많은 쓰레기가있었습니다. – jacob

+0

VARCHAR 열에 사용되는 문자 인코딩은 무엇입니까? –

답변

1

INSERT 동안 MySQL에서 열이 너무 많으면 알려줍니다. 하지만 분명히 MySQL은 친절하지 않습니다. LOAD 중에 이 아니라은 너무 많은 열이 있는지 알려줍니다.