이를 위해서는 INSERT SELECT 문을 사용해야 합니다. 구문은 다음과 같습니다.
INSERT INTOyourDatabaseName1.yourTableName1(yourColumnName1,yourColumnName2,....N)SELECT yourColumnName1,yourColumnName2,...N FROMyourdatabaseName2.yourTableName2;
여기서는 다음 두 데이터베이스를 사용하고 있습니다.
- 샘플
- 테스트
"test" 데이터베이스에 첫 번째 테이블을 생성해 보겠습니다.
<보내기>
mysql> use test;Database changedmysql> create table send -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20) -> );Query OK, 0개의 행이 영향을 받았습니다(1.19초)사전>삽입 명령을 사용하여 첫 번째 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다.
mysql> insert into send(Name) values('John');Query OK, 1행 영향(0.20초)mysql> insert into send(Name) values('Carol');Query OK, 1행 영향( 0.40초)select 문을 사용하여 테이블의 모든 레코드 표시
mysql> select *from send;다음은 출력입니다.
+----+-------+| 아이디 | 이름 |+----+-------+| 1 | 존 || 2 | 캐롤 |+----+-------+2행 세트(0.00초)이제 "샘플" 데이터베이스에 두 번째 테이블을 만듭니다.
<받기>
mysql> use sample;Database addedmysql> create table receive -> ( -> UserId int, -> UserName varchar(20) -> );쿼리 OK, 영향을 받는 행 0개(0.59초)위에서 볼 수 있듯이 두 번째 테이블 "receive"에는 레코드가 없습니다.
이제 서로 다른 데이터베이스의 서로 다른 열이 있는 2개의 테이블 간에 데이터를 이동하겠습니다. 쿼리는 다음과 같습니다.
mysql> insert into sample.receive(UserId,UserName) -> select Id,Name from test.send;Query OK, 영향을 받는 2개 행(0.21초) 레코드:2 중복:0 경고:0sample.receive 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.
mysql> select *from 수신;다음은 다른 데이터베이스의 한 테이블에서 다른 테이블로 날짜를 성공적으로 이동했음을 표시하는 출력입니다.
+--------+----------+| 사용자 ID | 사용자 이름 |+--------+----------+| 1 | 존 || 2 | Carol |+--------+----------+2행 세트(0.00초)