단일 MySQL 쿼리로 임시 테이블에 여러 값 삽입하기
MySQL에서는 INSERT 문 하나만으로 임시 테이블(Temporary Table)에 여러 개의 값을 동시에 삽입할 수 있습니다. VALUES 절에 값들을 쉼표(,)로 구분하여 나열하면 되는데, 이 방식은 쿼리 실행 횟수를 크게 줄여주기 때문에 대량의 데이터를 입력할 때 성능 면에서 매우 유용합니다.
1. 임시 테이블 생성
먼저 CREATE TEMPORARY TABLE 문을 사용해 임시 테이블을 생성합니다. 임시 테이블은 현재 세션에서만 유효하며 세션이 종료되면 자동으로 삭제되므로, 일시적인 데이터 작업에 적합합니다.
mysql> create temporary table DemoTable
(
SerialNumber int
);
Query OK, 0 rows affected (0.00 sec)2. 단일 쿼리로 여러 값 삽입
INSERT 문에서 VALUES 뒤에 괄호로 묶은 값 그룹들을 쉼표로 나열하면, 한 번의 실행으로 여러 행을 동시에 삽입할 수 있습니다.
mysql> insert into DemoTable values(1),(2),(3),(4),(5),(6),(7),(8); Query OK, 8 rows affected (0.00 sec) Records: 8 Duplicates: 0 Warnings: 0
실행 결과를 보면 8개의 행이 단 한 번의 쿼리로 오류나 중복 없이 정상적으로 삽입되었음을 확인할 수 있습니다.
3. 삽입된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회하여 삽입 결과를 검증합니다.
mysql> select *from DemoTable;
+--------------+ | SerialNumber | +--------------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | +--------------+ 8 rows in set (0.00 sec)
정리
VALUES 절에 여러 개의 값 그룹을 쉼표로 구분해 나열하면, 단일 INSERT 쿼리만으로 임시 테이블에 여러 행을 한꺼번에 삽입할 수 있습니다. 이는 각 행마다 별도의 INSERT 문을 실행하는 것보다 네트워크 왕복 횟수와 처리 오버헤드를 줄여주므로, 대량 데이터 입력 시 성능 최적화에 큰 도움이 됩니다.