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 |