2010-12-14 3 views
2

아래 코드를 사용하여 LOAD DATA LOCAL INFILE을 사용하여 mysql 테이블에 데이터를로드하려고합니다.mysql로드 데이터 로컬 infile

MySQL의 :

LOAD DATA INFILE '/var/www/vhosts/domain.com/httpdocs/test1.csv' INTO TABLE temp_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (recloc,client_acc) 

편집 : LOADA DATA INFILE 제거 SET 아이디 = null로 변경 LOAD 데이터 LOCAL INFILE 1 LINES

나는 오류없이 수입 기록을 얻기없는거야 무시했다. 문제는 열 이름과 관련이 있다고 생각하지만 이름이 무엇인지 충분히 이해하기가 힘듭니다. CSV 내의 실제 열 이름이어야합니까? 또는 DB 테이블의 필드 이름? 나는 또한 auto_incremented 프라이 머리 키 (id)를 갖고 싶다.

CSV :

recloc,client_acc 
"NLGSX3","CORPORATE" 
"7SC3BA","QUALITY ASSURANCE" 
"3B9OHF","90717-6710" 

내가 잘못하고있을 수 있습니다 무엇에 어떤 제안? 감사!

답변

2

CSV의 열 이름은 필요하지 않으므로 IGNORE 1 LINES 절을 추가해야합니다.

쿼리의 열 (recloc,client_acc)은 표의 열과 일치해야합니다. CSV의 첫 번째 열을 recloc에 삽입하고 두 번째를 client_acc에 삽입합니다.

문에 AUTO_INCREMENT 열을 지정하지 않았지만 테이블에 AUTO_INCREMENT 열을 지정하지 않으면 자동으로 채워집니다. MySQL의 데이터 가져 오기에 엑셀에 대한

+0

제거, 추가 된 "1 LINES가 무시"아직도 행운 "ID = null을 설정". 또한 가져 오기 스크립트 디렉토리에 CSV를 저장하고 있지만 서버 경로도 시도했습니다. 나는 어떤 종류의 mysql 에러가 발생하지 않아야 하는가? –

+0

더 많은 연구 후 내가 서버에 저장된 파일을 사용하고 있기 때문에 LOAD DATA LOCAL INFILE을 LOAD DATA INFILE로 변경했습니다. –

0

짧고 달콤한 솔루션 : txt 파일 형식에 대한 좋은 근무

.

tbl name=t1 
feilds are= name varchar,email varchar; 

text.txt 파일 < < ==이 텍스트 파일 첫번째 라인 테이블 열 이름 : 세부 사항에

name, email 
"n1", "e1" next line 
"n2", "e2" next line 
"n3", "e3" next line 
"n4", "e4" next line 
"n5", "e5" next line 
"n6", "e6" next line 
"n7", "e7" next line 

PLS는 다음 줄 문을 WAMP에 SQL 쿼리를 무시

LOAD DATA INFILE 'c:/wamp/www/touch/text.txt' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES(name,email) 

이 commnad가 성공적으로 실행 되려면 별도로 폴더를 생성해야합니다.

실제 하나

는 C : \ WAMP \ mysql을 \ 데이터 \ WAMP \ www를 터치 \의 text.txt \ < < == pysical 파일 경로입니다.

그러나 우리가 언급 C : /wamp/touch/text.txt

관련 문제