본문 바로가기
MySQL

MySQL load data 로 대량 데이터 insert 하기(CSV 파일 업로드)

by payy 2023. 12. 29.
반응형

 

 

MySQL에 대량의 데이터를 isnert 해야 할 때,
load data infile로 쉽고 빠르게 insert 가능하다.


테스트 테이블 생성구문

create table test (
seq int unsigned not null auto_increment comment 'seq',
date1 datetime not null comment 'date1',
date2 datetime default null comment 'date2',
email varchar(100) default null comment '이메일',
enc_email varchar(150) default null comment '암호화이메일',
result varchar(10)  default null comment '결과',
desc varchar(2000) default null comment '결과 상세내역',
primary key (seq),
key 'test_idx01' (date1),
key 'test_idx02' (date2),
key 'test_idx03' (email)
) engine=innodb default charset=utf8mb4 ;

 

 

load data infile 구문

load data [local] infile '/home/aaa.csv'
into table test character set utf8
fields terminated by ','
optionally terminated by '"'
lines terminated by '/n'
(date1, date2, email, enc_email , result, desc);

 

 

[local] 구문은 mysql 의 datadir 경로에 import 할 파일이  없는 경우, 퍼미션 에러가 날 수 있다.

이때 local 구문을 같이 넣어주면 문제없이 데이터가 들어간다.

 

보통 CSV 파일들은 콤마(,)를 구분자로 하여 한 로우는 큰따옴표(")로 구분된다.

또한 다음 로우를 인식하기 위해 줄바꿈(\n)을 사용했다.

 

위의 명령어를 mysql 에 접속해서 실행하면 된다.!

반응형