본문 바로가기
카테고리 없음

mysql 에서 테이블 복사하는 방법

by 웹디자인 2025. 1. 9.

MySQL에서 테이블을 복사하는 방법은 여러 가지가 있으며, 목적에 따라 적절한 방법을 선택할 수 있습니다.

아래는 데이터를 포함하거나 포함하지 않고 테이블을 복사하는 몇 가지 방법입니다.


1. 테이블 구조만 복사

CREATE TABLE new_table LIKE original_table;
  • 설명: original_table의 구조를 복사하여 new_table을 생성합니다. 데이터는 복사되지 않습니다.

2. 테이블 구조 및 데이터 복사

CREATE TABLE new_table AS SELECT * FROM original_table;
  • 설명: original_table의 구조와 데이터를 모두 복사하여 new_table을 생성합니다. 그러나 인덱스와 트리거는 복사되지 않습니다.

3. 테이블 구조 복사 후 데이터 삽입

CREATE TABLE new_table LIKE original_table;
INSERT INTO new_table SELECT * FROM original_table;
  • 설명: 첫 번째 줄에서 original_table의 구조를 복사한 후, 두 번째 줄에서 데이터를 new_table에 삽입합니다. 이 방법은 인덱스와 트리거를 유지하면서 데이터를 복사할 수 있습니다.

4. 테이블 데이터만 복사 (기존 테이블에 데이터 추가)

INSERT INTO new_table SELECT * FROM original_table;
  • 설명: original_table의 데이터를 new_table에 복사합니다. new_table이 이미 존재해야 합니다.

5. 특정 조건을 만족하는 데이터 복사

CREATE TABLE new_table AS SELECT * FROM original_table WHERE column_name = 'some_value';
  • 설명: original_table에서 특정 조건을 만족하는 행만 new_table로 복사합니다.

6. 테이블 복사 후 인덱스 및 트리거 추가

인덱스와 트리거는 자동으로 복사되지 않기 때문에, 테이블 구조와 데이터를 복사한 후 필요한 경우 수동으로 추가해야 합니다.

-- 인덱스 추가 예시
CREATE INDEX index_name ON new_table(column_name);

-- 트리거 추가 예시
CREATE TRIGGER trigger_name BEFORE INSERT ON new_table
FOR EACH ROW
BEGIN
  -- 트리거 내용
END;

요약

  1. 구조만 복사: CREATE TABLE new_table LIKE original_table;
  2. 구조 및 데이터 복사: CREATE TABLE new_table AS SELECT * FROM original_table;
  3. 구조 복사 후 데이터 삽입: CREATE TABLE new_table LIKE original_table; INSERT INTO new_table SELECT * FROM original_table;
  4. 조건부 데이터 복사: CREATE TABLE new_table AS SELECT * FROM original_table WHERE column_name = 'some_value';

댓글