2017-03-12 1 views
0

한 테이블에 나열된 데이터를 모두 동일한 데이터베이스에있는 다른 테이블로 복사하려고했습니다. 그러나 모든 항목을 입력 할 때마다 쿼리가 실행되고 0 행이 업데이트됩니다.SQL의 한 테이블에서 다른 테이블로 행을 복사하는 방법은 무엇입니까?

이 기능을 사용하기 위해 여러 가지 변형을 시도했습니다. 그러한 시도 중 하나가 아래에 열거되어 있습니다. 이 작업을 수행하기 위해 연구하면서 이것을 발견했습니다.

UPDATE 
    t1 
SET 
    t1.column = t2.column 
FROM 
    Table1 t1 
    INNER JOIN Table2 t2 
    ON t1.id = t2.id; 

이 문제에 대한 도움을 주시면 감사하겠습니다.

답변

0

UPDATE은 이미 존재하는 레코드 만 수정하므로 다른 테이블에있는 행을 삽입하려는 경우 INSERT을 사용하십시오.

INSERTSELECT을 합쳐 table1 전체를 table2으로 복사 할 수 있습니다.

INSERT INTO table2 SELECT * FROM table1; 

아직 존재하지 않는 레코드 만 복사 INSERT IGNORE을 사용할 수 있습니다 (고유 키 기준).

또한 경우에 복사 할 필드를 지정할 수있는 테이블이 다릅니다 :

INSERT INTO table2 (id, first_name, last_name) SELECT id, name, surname FROM table1; 
관련 문제