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

MySQL LIKE 문법으로 기존 테이블 구조를 복제한 새 테이블 만드는 방법

MySQL에서는 CREATE TABLE ... LIKE 구문을 사용하면 기존 테이블의 구조(컬럼 정의, 데이터 타입, 인덱스, PRIMARY KEY 등)를 그대로 복제한 새로운 빈 테이블을 손쉽게 만들 수 있습니다. 아래에서 실제 예제와 함께 단계별로 살펴보겠습니다.

1. 원본 테이블 생성하기

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

mysql> create table DemoTable1
(
    EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeName varchar(50)
);
Query OK, 0 rows affected (0.48 sec)

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable1(EmployeeName) values('Tom');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1(EmployeeName) values('Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1(EmployeeName) values('Emma');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1(EmployeeName) values('Sam');
Query OK, 1 row affected (0.10 sec)

3. 데이터 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1;

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

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
|          1 | Tom          |
|          2 | Mike         |
|          3 | Emma         |
|          4 | Sam          |
+------------+--------------+
4 rows in set (0.00 sec)

4. LIKE를 사용해 새 테이블 생성하기

이제 핵심 단계입니다. 다음 쿼리처럼 CREATE TABLE ... LIKE를 사용하면 DemoTable1과 동일한 구조를 가진 DemoTable2가 생성됩니다.

mysql> create table DemoTable2 LIKE DemoTable1;
Query OK, 0 rows affected (0.55 sec)

5. 새 테이블 구조 확인하기

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

mysql> desc DemoTable2;

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

+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| EmployeeId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| EmployeeName | varchar(50) | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

참고 사항

CREATE TABLE ... LIKE는 컬럼 정의뿐만 아니라 PRIMARY KEY, 인덱스 등 테이블 속성까지 함께 복사하지만, 원본 테이블의 데이터는 복사되지 않는다는 점에 유의하세요. 구조와 데이터를 모두 복제하고 싶다면 CREATE TABLE ... AS SELECT 구문을 사용할 수 있으며, 이 경우에는 인덱스나 키 정보가 복사되지 않으므로 상황에 맞게 선택하는 것이 좋습니다.