본문 바로가기

개발/DB

MariaDB LOAD DATA INFILE


LOAD DATA INFILE


파일의 내용들을 DB 테이블에 통으로 넣는 작업을 하는 쿼리문인데 2시간동안 잘못된 쿼리인줄도 모르고 다른곳에서 원인을 찾았네....

LOAD DATA INFILE 쿼리는 아래와 같다. (옵션은 이곳을 참고 - https://mariadb.com/kb/en/mariadb/load-data-infile/)

LOAD DATA INFILE 'FILE_PATH'

REPLACE 

INTO TABLE TABLE_NAME

FIELDS TERMINATED BY '필드 구분자'

OPTIONALLY ENCLOSED BY '필드값을 감싸고 있는 문자'

LINES TERMINATED BY '라인 구분자'

(@col1, @col2)    쉽게 생각해서 FILE에 있는 필드값을 담는 변수라고 생각하면 된다. 변수명은 아무거나 해도 되는듯 @col1, @A, @A1 등등

SET

A = @col1, 파일 첫번째 필드값

B = @col2  컬파일 두번째 필드값


여기서 내가 삽질했던건 INTO TABLE TABLE_NAME 여기서 INTO "TABLE"이 빠져있었는데 이걸 모르고 다른 곳에서 원인을 찾았다...

syntax 에러를 유심히 봤는데도.. 참.. 내 눈은.... OTL....


만약에 테이블에 insert할 파일이 Local 경로에 있으면 LOAD DATA LOCAL INFILE을 사용하면 된다.

예를들어 insert할 파일이 윈도우에 존재한다면 이 쿼리문을 사용한다.


윈도우 텍스트 파일의 라인 구분은 "\r\n"인걸 명심하자.


윈도우 파일 경로는 \가 아니라 /을 사용하자.

C:\Users\user\Desktop -> C:/Users/user/Desktop


잘못된 정보는 바로 지적해 주세요.

'개발 > DB' 카테고리의 다른 글

Mysql 옵션  (0) 2016.12.23
DB 디렉토리 심볼릭 링크 걸기  (0) 2016.05.25
MYSQL DB DUMP  (0) 2016.05.18
우분투에서 mariaDB 설치  (0) 2016.05.12