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