반응형

MySQL 8.0 이상에서 기존 테이블의 데이터를 포함한 백업 테이블을 만들고 싶을 때 간단하게 사용할 수 있는 두 가지 방법을 소개합니다.
방법 1: CREATE TABLE ... AS SELECT ...
이 방법은 기존 테이블의 구조와 데이터를 복사하여 새 테이블을 생성합니다.
사용 예제:
CREATE TABLE _a AS SELECT * FROM a;
설명:
- 구조 복사: 기존 테이블의 열 이름과 데이터 타입을 그대로 가져옵니다.
- 데이터 복사: 모든 데이터를 복사하여 새로운 테이블에 저장합니다.
장점:
- 빠르고 간단합니다.
- 기존 테이블의 데이터를 즉시 복사하여 백업할 수 있습니다.
단점:
- 기본 키, 외래 키, 인덱스, 트리거 등의 메타데이터는 복사되지 않습니다.
참고:
특정 조건에 맞는 데이터만 복사하고 싶다면 WHERE 절을 추가할 수 있습니다.
CREATE TABLE _a AS SELECT * FROM a WHERE status = 'active';
반응형
방법 2: CREATE TABLE ... LIKE와 INSERT INTO 조합
이 방법은 기존 테이블의 구조를 완전히 복사한 뒤, 데이터를 추가로 삽입하는 방식입니다.
사용 예제:
- 테이블 구조 복사:
- CREATE TABLE _a LIKE a;
- 데이터 복사:
- INSERT INTO _a SELECT * FROM a;
설명:
- 구조 복사: 기존 테이블의 기본 키, 인덱스, 제약 조건(외래 키 제외) 등을 포함한 전체 구조를 복사합니다.
- 데이터 복사: 원본 테이블의 데이터를 새 테이블로 삽입합니다.
장점:
- 인덱스와 기본 키 같은 구조적인 요소를 함께 복사할 수 있습니다.
단점:
- 두 단계로 나뉘어 처리되므로 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의 조합을 사용하세요.
위 방법들을 활용하여 데이터를 안전하게 백업하고 관리하세요!
반응형
'IT' 카테고리의 다른 글
| 컴퓨터 속도를 빠르게 만드는 팁: 성능 최적화 방법 (5) | 2025.01.31 |
|---|---|
| [SpringBoot] 에러 전파와 /error 호출 흐름 (5) | 2025.01.24 |
| [MySQL] 테이블, 컬럼 코멘트 조회 (2) | 2025.01.24 |
| [GitHub] 깃허브 Private repository commit 잔디 보이게하기 (2) | 2025.01.24 |
| [Spring] 어노테이션(Annotation) (1) | 2025.01.24 |