2016-08-29 3 views
0

이전 테이블의 데이터를 두 개의 다른 테이블로 마이그레이션하려고합니다. 나는 다음과 같은 것을 할 수있는 방법이 있다면 궁금합니다.여러 테이블에 선택 결과 삽입

INSERT INTO table1(v1, v2) 
INSERT INTO table2(LAST_INSERT_ID(), v3) 
SELECT v1, v2, v3 FROM old_table 

이 절차를 작성해야합니까?

+0

그건 불가능합니다. 프로 시저를 작성하거나 값을 삽입하려는 각 테이블에 대해 별도로 쿼리를 실행하는 것이 좋습니다. –

+0

[Mysql은 muti-insert를 지원하지 않습니다.] (http://stackoverflow.com/questions/3860280/sql-insert-into-multiple-tables-in-one-query) –

+0

@MatthiasBurger 두 번째 삽입물에는 이드는 1 번째부터. – kechapito

답변

2

아니요, 불가능합니다. 두 개의 별도 insert 문을 발행해야합니다.

INSERT INTO table1(v1, v2) 
SELECT v1, v2, v3, v4 FROM old_table; 

INSERT INTO table2(v3, v4) 
SELECT v1, v2, v3, v4 FROM old_table; 

트랜잭션으로이를 마무리 할 수 ​​있습니다.

그러나 더 정교한 필요성이 있고 손으로 입력하고 싶지 않은 여러 테이블에 동일한 데이터를 삽입하는 경우 프로 시저 내에 루프를 작성하고 테이블 및 열 이름을 제공하는 동적 문을 실행할 수 있습니다 . INFORMATION_SCHEMA 테이블을 시작하는 것이 좋습니다.