컬럼 구조와 csv가 같을 경우
123.456.789.000 << mysql host 주소
// userId << mysql 유저 아이디
// DBname << DB 명
mysql -h 123.456.789.000 -u userId -p DBname
접속
pass 입력
>> use DBname
>> LOAD DATA LOCAL INFILE [FILE_PATH]INTO TABLE [DB_NAME.TABLE_NAME] FIELDS TERMINATED BY ",";
예시
ex)>> LOAD DATA LOCAL INFILE "/Users/backyoungho/Documents/network.csv" INTO TABLE Dbname.geoip_ip_csv FIELDS TERMINATED BY ",";
2808 error 날 경우
//확인하기
SHOW VARIABLES LIKE 'local_inflie';
값이 0이나 false 일 경우
SET GLOBAL local_infile = 1;
# 또는
SET GLOBAL local_infile = true;
컬럼 구조가 다른경우
- CSV와 테이블 구조 다른 경우
LOAD DATA LOCAL INFILE [FILE_PATH]INTO TABLE [DB_NAME.TABLE_NAME]
FIELDS TERMINATED BY ","ENCLOSED BY ""LINES
TERMINATED BY "\n"(column1,column2,column3, ...);
##########################################################################
##########################################################################
MySQL에 대용량 파일을 손쉽게 Insert(삽입)하는 방법이다.
ORACLE에 Sql Loader와 비슷하다고 생각하면 된다.
LOAD DATA INFILE '등록할 파일명' INTO TABLE 등록될_테이블명
FIELDS TERMINATED BY '컬럼구분자'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(등록될_테이블명_컬럼1, 등록될_테이블명_컬럼2, ...);
FIELDS TERMINATED BY '컬럼구분자'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(등록될_테이블명_컬럼1, 등록될_테이블명_컬럼2, ...);
fields terminiated by '컬럼구분자' : 컬럼을 구분할 구분자를 지정한다.
lines terminated by '\n' : 라인(줄)을 구분해줄 구분자를 말한다. 보통 \n 지정.
ignore 1 lines : 등록할 파일명의 첫줄을 무시하고 Insert한다. 보통 등록할 파일명 첫줄엔 명칭이 들어가 있기 때문에..
예)
LOAD DATA INFILE '/home/disorder/data/conv/pt.txt_conv_ptno.txt' INTO TABLE pt
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(pt_no, hosp_bus_tkov_daytime, ord_cd, ord_nm);
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(pt_no, hosp_bus_tkov_daytime, ord_cd, ord_nm);
'DB > mysql' 카테고리의 다른 글
master slave 연동 확인하기 (0) | 2022.11.01 |
---|---|
PROCESSLIST kill (1) | 2022.11.01 |
[mysql] too many connections (0) | 2022.09.14 |
두개의 테이블 조인하여 업데이트 (0) | 2022.07.27 |
mysql특정 컬럼,테이블 찾기 (0) | 2022.06.21 |