Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 LIKE를 활용해 일반 테이블과 동일한 구조의 임시 테이블 생성하기

MySQL에서는 CREATE TEMPORARY TABLE ... LIKE 문법을 사용하면 기존 일반 테이블과 동일한 구조(컬럼, 데이터 타입, 인덱스 등)를 가진 임시 테이블을 손쉽게 만들 수 있습니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1단계: 원본 테이블 생성

먼저 예제로 사용할 일반 테이블을 생성합니다.

mysql> create table DemoTable1
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(100)
);
Query OK, 0 rows affected (0.59 sec)

2단계: 데이터 삽입

INSERT 명령어를 사용해 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable1(Name) values('Chris');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1(Name) values('Robert');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1(Name) values('Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1(Name) values('Sam');
Query OK, 1 row affected (0.07 sec)

3단계: 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 정상적으로 입력되었는지 확인합니다.

mysql> select *from DemoTable1;

위 쿼리는 다음과 같은 결과를 출력합니다.

+----+--------+
| Id | Name   |
+----+--------+
|  1 | Chris  |
|  2 | Robert |
|  3 | Mike   |
|  4 | Sam    |
+----+--------+
4 rows in set (0.00 sec)

4단계: LIKE를 사용해 임시 테이블 생성

다음 쿼리는 일반 테이블(DemoTable1)과 동일한 구조를 가진 임시 테이블(DemoTable2)을 생성합니다.

mysql> create temporary table DemoTable2 like DemoTable1;
Query OK, 0 rows affected (0.04 sec)

5단계: 임시 테이블 구조 확인

DESC 명령어로 새로 만든 임시 테이블의 구조를 확인해 보겠습니다.

mysql> desc DemoTable2;

실행 결과는 다음과 같습니다.

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| Id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(100) | YES  |     | NULL    | NULL           |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.04 sec)

출력 결과에서 볼 수 있듯이, DemoTable2는 원본 테이블인 DemoTable1과 완전히 동일한 컬럼 구조(int 타입의 AUTO_INCREMENT 기본키 Id, varchar(100) 타입의 Name)를 가지고 있습니다.

참고 사항

임시 테이블(Temporary Table)은 현재 세션에서만 유효하며, 세션이 종료되면 자동으로 삭제됩니다. 따라서 복잡한 쿼리의 중간 결과를 저장하거나, 다른 세션에 영향을 주지 않으면서 원본 테이블과 같은 구조로 데이터를 잠시 처리해야 할 때 매우 유용하게 활용할 수 있습니다.