Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 한 데이터베이스의 테이블을 다른 데이터베이스로 복사하는 방법

MySQL에서는 INSERT INTO ... SELECT 구문을 활용하면 한 데이터베이스에 있는 테이블의 데이터를 다른 데이터베이스의 테이블로 간단하게 복사할 수 있습니다.

기본 문법

테이블을 한 데이터베이스에서 다른 데이터베이스로 복사하는 기본 문법은 다음과 같습니다.

INSERT INTO 대상데이터베이스명.대상테이블명 SELECT * FROM 원본데이터베이스명.원본테이블명;

이제 실제 예제를 통해 복사 과정을 단계별로 살펴보겠습니다.

1단계: 원본 테이블 생성

먼저 CREATE 명령어를 사용해 'business' 데이터베이스에 새로운 테이블을 생성합니다.

<business>

mysql> use business;
Database changed
mysql> create table OriginalTable
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.46 sec)

2단계: 대상 테이블 생성

복사될 데이터를 담을 테이블을 'test' 데이터베이스에 동일한 구조로 생성합니다.

<test>

mysql> use test;
Database changed
mysql> create table OriginalTable
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.47 sec)

3단계: 원본 테이블에 데이터 삽입

INSERT 명령어를 사용하여 첫 번째 테이블('business' 데이터베이스)에 레코드를 삽입합니다.

mysql> use business;
Database changed
mysql> insert into OriginalTable values(1),(2),(3),(4);
Query OK, 4 rows affected (0.18 sec)
Records: 4  Duplicates: 0  Warnings: 0

삽입된 모든 레코드를 확인해 보겠습니다.

mysql> select * from OriginalTable;

실행 결과는 다음과 같습니다.

+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

4단계: 테이블 복사 실행

이제 'business' 데이터베이스의 OriginalTable을 'test' 데이터베이스로 복사합니다.

mysql> INSERT INTO test.OriginalTable SELECT * FROM business.OriginalTable;
Query OK, 4 rows affected (0.20 sec)
Records: 4  Duplicates: 0  Warnings: 0

5단계: 복사 결과 확인

테이블이 정상적으로 복사되었는지 확인해 보겠습니다.

mysql> use test;
Database changed
mysql> select * from OriginalTable;

아래 출력 결과를 보면 'OriginalTable'이 두 번째 데이터베이스('test')로 성공적으로 복사된 것을 확인할 수 있습니다.

+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

참고 사항

위 방법은 테이블의 데이터만 복사합니다. 만약 인덱스, 기본 키, 외래 키 등 테이블 구조까지 함께 복사하고 싶다면 먼저 CREATE TABLE ... LIKE 구문으로 구조를 복제한 후, INSERT INTO ... SELECT로 데이터를 옮기는 것이 좋습니다.

CREATE TABLE test.OriginalTable LIKE business.OriginalTable;
INSERT INTO test.OriginalTable SELECT * FROM business.OriginalTable;