mysqlimport 유틸리티를 활용하면 여러 개의 MySQL 테이블에 데이터를 동시에 업로드할 수 있습니다. 하나의 명령문에 여러 파일 경로를 나열하기만 하면 되는데요, 아래 예시를 통해 구체적인 사용 방법을 살펴보겠습니다.
예시: 두 개의 데이터 파일 준비
먼저 업로드할 데이터가 담긴 두 개의 텍스트 파일을 준비합니다.
첫 번째 파일 — student_tbl.txt
1 Saurav 11th 2 Sahil 11th 3 Digvijay 11th
두 번째 파일 — house.txt
1 Furniture 2 Television 3 Refrigerator
데이터를 저장할 MySQL 테이블 구조 확인
위 데이터를 저장할 두 개의 테이블 구조는 다음과 같습니다.
mysql> DESCRIBE Student1_tbl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | RollNo | int(11) | YES | | NULL | | | Name | varchar(20) | YES | | NULL | | | Class | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.06 sec) mysql> DESCRIBE House; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | Sr | int(11) | YES | | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
mysqlimport 실행 방법
이제 다음 명령어 하나만으로 두 테이블에 데이터를 동시에 업로드할 수 있습니다. 핵심은 여러 파일 경로를 공백으로 구분하여 함께 지정하는 것입니다.
C:\mysql\bin>mysqlimport -u root query C:/mysql/bin/mysql-files/student_tbl.txt C:/mysql/bin/mysql-files/house.txt query.student_tbl: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0 query.house: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
명령 실행 결과를 보면 각 파일마다 처리된 레코드 수(Records), 삭제된 레코드(Deleted), 건너뛴 레코드(Skipped), 경고(Warnings)가 출력됩니다. 여기서는 두 테이블 모두 3개의 레코드가 오류 없이 정상적으로 삽입되었습니다.
업로드 결과 확인
실제로 데이터가 잘 들어갔는지 SELECT 문으로 확인해 보겠습니다.
mysql> Select * from House; +------+--------------+ | Sr | Name | +------+--------------+ | 1 | Furniture | | 2 | Television | | 3 | Refrigerator | +------+--------------+ 3 rows in set (0.00 sec) mysql> Select * from student1_tbl; +--------+----------+-------+ | RollNo | Name | Class | +--------+----------+-------+ | 1 | Saurav | 11th | | 2 | Sahil | 11th | | 3 | Digvijay | 11th | +--------+----------+-------+ 3 rows in set (0.00 sec)
정리 및 주의 사항
mysqlimport는 기본적으로 파일 이름과 테이블 이름이 일치해야 동작합니다. 즉, student_tbl.txt 파일은 student_tbl 테이블로, house.txt 파일은 house 테이블로 자동 매핑됩니다. 따라서 파일명을 대상 테이블 이름과 동일하게 지정하는 것이 중요합니다.
또한 자주 사용하는 주요 옵션은 다음과 같습니다.
-u: 접속할 MySQL 사용자 계정 지정-p: 비밀번호 입력 프롬프트 표시--local: 클라이언트 측 로컬 파일을 읽어 업로드 (LOAD DATA LOCAL)--fields-terminated-by: 필드 구분자 지정 (기본값은 탭)--lines-terminated-by: 행 구분자 지정
이처럼 mysqlimport를 사용하면 LOAD DATA INFILE 문을 일일이 작성하지 않고도 명령줄에서 여러 테이블에 대한 대량 데이터 적재를 빠르고 간편하게 처리할 수 있습니다.