IT

MySQL에서 테이블 백업하기: CREATE TABLE AS와 LIKE 사용법

data-cloud 2025. 1. 24. 00:35
반응형

 

 

MySQL 8.0 이상에서 기존 테이블의 데이터를 포함한 백업 테이블을 만들고 싶을 때 간단하게 사용할 수 있는 두 가지 방법을 소개합니다.


방법 1: CREATE TABLE ... AS SELECT ...

이 방법은 기존 테이블의 구조와 데이터를 복사하여 새 테이블을 생성합니다.

사용 예제:

CREATE TABLE _a AS SELECT * FROM a;

설명:

  1. 구조 복사: 기존 테이블의 열 이름과 데이터 타입을 그대로 가져옵니다.
  2. 데이터 복사: 모든 데이터를 복사하여 새로운 테이블에 저장합니다.

장점:

  • 빠르고 간단합니다.
  • 기존 테이블의 데이터를 즉시 복사하여 백업할 수 있습니다.

단점:

  • 기본 키, 외래 키, 인덱스, 트리거 등의 메타데이터는 복사되지 않습니다.

참고:

특정 조건에 맞는 데이터만 복사하고 싶다면 WHERE 절을 추가할 수 있습니다.

CREATE TABLE _a AS SELECT * FROM a WHERE status = 'active';

 

반응형

 

 

방법 2: CREATE TABLE ... LIKE INSERT INTO 조합

이 방법은 기존 테이블의 구조를 완전히 복사한 뒤, 데이터를 추가로 삽입하는 방식입니다.

사용 예제:

  1. 테이블 구조 복사:
  2. CREATE TABLE _a LIKE a;
  3. 데이터 복사:
  4. INSERT INTO _a SELECT * FROM a;

설명:

  1. 구조 복사: 기존 테이블의 기본 키, 인덱스, 제약 조건(외래 키 제외) 등을 포함한 전체 구조를 복사합니다.
  2. 데이터 복사: 원본 테이블의 데이터를 새 테이블로 삽입합니다.

장점:

  • 인덱스와 기본 키 같은 구조적인 요소를 함께 복사할 수 있습니다.

단점:

  • 두 단계로 나뉘어 처리되므로 CREATE TABLE AS에 비해 상대적으로 복잡합니다.
  • 트리거와 외래 키는 복사되지 않습니다.

두 방법의 비교

  CREATE TABLE AS CREATE TABLE LIKE + INSERT INTO
데이터 복사 O O
기본 키 복사 X O
인덱스 복사 X O
외래 키 복사 X X
트리거 복사 X X
사용 편의성 간단 복잡

요약

  • 빠르고 간단한 백업이 필요하다면 CREATE TABLE ... AS SELECT ...을 사용하세요.
  • 테이블 구조까지 정확히 복사하려면 CREATE TABLE ... LIKE INSERT INTO의 조합을 사용하세요.

위 방법들을 활용하여 데이터를 안전하게 백업하고 관리하세요!

반응형