MySQL에서 데이터를 복사하지 않고 테이블 구조 복사

Mehvish Ashiq 2023년6월20일
  1. MySQL에서 데이터를 복사하지 않고 테이블 구조 복사
  2. CREATE TABLE ... LIKE를 사용하여 MySQL에서 테이블 구조 복사
MySQL에서 데이터를 복사하지 않고 테이블 구조 복사

오늘은 MySQL에서 데이터를 복사하지 않고 테이블 구조를 복사하는 방법을 알아보겠습니다. CREATE TABLE ... LIKE 문을 사용하여 테이블 구조만 복사합니다.

MySQL에서 데이터를 복사하지 않고 테이블 구조 복사

자세히 알아보기 위해 test 데이터베이스에 상주하고 속성으로 ID, USERNAMEEMAIL이 있는 users라는 테이블을 생성해 보겠습니다.

테이블 생성(users 테이블):

#create a table named 'users' in the 'test' database
CREATE TABLE `test`.`users` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `USERNAME` VARCHAR(45) NOT NULL,
  `EMAIL` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`ID`));

다음으로 레코드를 삽입하여 데이터가 아닌 테이블의 구조만 새 테이블에 복사됨을 구분합니다.

INSERT INTO `test`.`users` (USERNAME, EMAIL) VALUES ('mehvish', 'delfstack@example.com');

CREATE TABLE ... LIKE를 사용하여 MySQL에서 테이블 구조 복사

아래에 제공된 CREATE TABLE ... LIKE 문을 실행하여 테이블 정의라고도 하는 테이블 구조를 복사할 수 있습니다.

# Syntax: CREATE TABLE new_table LIKE original_table;
CREATE TABLE new_user_one LIKE test.users;

위에 주어진 쿼리는 users 테이블과 정확히 같은 new_user_one 테이블의 구조를 만듭니다.

모든 열 이름, 데이터 유형, 기본값 및 테이블 내용을 제외한 모든 항목을 복사합니다. 테이블 데이터를 복사하지 않습니다.

다음 쿼리를 사용하여 새 테이블의 열 이름, 데이터 유형 등을 다시 확인할 수 있습니다.

SHOW CREATE TABLE test.new_user_one;

데이터를 가지고 있는 상황이 있다면 두 가지 방법으로 할 수 있습니다. 테이블 구조를 복사하면서 데이터를 복사하거나 복사 후 삽입하십시오. 둘 다 아래에 나와 있습니다.

테이블 구조 복사 후 데이터 복사:

# Syntax: INSERT INTO new_table SELECT * FROM original_table;
INSERT INTO new_user_one SELECT * FROM test.users;

테이블 구조를 복사하는 동안 데이터 복사:

# Syntax: CREATE TABLE new_table AS SELECT * FROM original_table;
CREATE TABLE new_user_two AS SELECT * FROM test.users;

두 번째 방법으로 CREATE TABLE ... AS SELECT 문을 실행하여 테이블의 내용을 복사하거나 복제할 수 있습니다. 큰 테이블이 있는 경우 데이터를 복사하는 데 시간이 걸릴 수 있습니다.

새 테이블(여기서는 new_user_two)은 기본 열 정의, 기본값 및 null 설정만 복사한다는 점을 기억하십시오. AUTO_INCREMENTINDEXES의 정의를 상속하지 않습니다.

다음 쿼리를 사용하여 확인할 수 있습니다.

SHOW CREATE TABLE test.new_user_two;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Table