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

MySQL에서 테이블 구조를 복제하는 방법 — CREATE TABLE ... LIKE 완벽 가이드

MySQL에서 기존 테이블의 구조만 그대로 복제하고 싶다면 LIKE 절을 활용하면 됩니다. CREATE TABLE ... LIKE 구문을 사용하면 원본 테이블과 동일한 컬럼 정의, 데이터 타입, 인덱스까지 복사된 새 테이블을 손쉽게 만들 수 있습니다. 단, 이 방법은 구조만 복제할 뿐 저장된 데이터는 함께 복사되지 않습니다.

1단계: 원본 테이블 생성

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1
-> (
-> StudentId int,
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.55 sec)

2단계: 샘플 데이터 삽입

insert 명령어를 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable1 values(100,'John');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable1 values(101,'Sam');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable1 values(102,'Carol');
Query OK, 1 row affected (0.15 sec)

3단계: 데이터 확인

select 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from DemoTable1;

출력 결과

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 100 | John |
| 101 | Sam |
| 102 | Carol |
+-----------+-------------+
3 rows in set (0.00 sec)

4단계: 테이블 구조 복제하기

다음은 MySQL에서 테이블 구조를 복제하는 핵심 쿼리입니다. LIKE 절 뒤에 원본 테이블 이름을 지정하기만 하면 됩니다.

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

5단계: 복제된 테이블 구조 확인

show create table 문을 실행하여 새로 생성된 테이블의 구조가 올바르게 복제되었는지 확인합니다.

mysql> show create table DemoTable2;

출력 결과

+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable2 | CREATE TABLE `demotable2` (`StudentId` int(11) DEFAULT NULL, `StudentName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 OLLATE=utf8_unicode_ci |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

출력 결과에서 확인할 수 있듯이 DemoTable2DemoTable1과 동일한 컬럼(StudentId, StudentName)과 데이터 타입, 문자셋 설정을 그대로 물려받았습니다. 이처럼 LIKE 절을 사용하면 INSERT나 백업 작업 없이도 테이블 구조만 몇 초 안에 간편하게 복제할 수 있어, 임시 테이블 생성이나 스키마 기반 개발 작업 시 매우 유용합니다.