2013-04-26 5 views
1

동일한 데이터베이스에 동일한 구조의 테이블이 2 개 있습니다. mySQL을 사용하여 한 테이블의 모든 데이터를 다른 테이블로 복사하려고합니다. 원본 테이블의 대상 테이블 행 수가 같거나 적거나 많을 수 있습니다.mySQL을 사용하여 동일한 데이터베이스의 한 테이블에서 다른 테이블로 모든 필드를 업데이트하는 방법은 무엇입니까?

검색해 보았습니다.

접근 # 1

TRUNCATE destination; 
INSERT INTO destination SELECT * FROM source 

접근 # 2

DROP TABLE destination; 
CREATE TABLE destination SELECT * FROM source 

가 UPDATE를 포함하는 다른 방법이없는 : 나는이 방법을 찾았나요?

+1

업데이트는 기존 레코드에 대한 변경 사항입니다 작동합니다. 기존 레코드를 변경하지 않으므로 옵션이 INSERT입니다. –

+0

'desination'에 레코드를 통합하려고합니까? –

+0

@MichaelGardner 대상은 실제로 원본의 오래된 복사본입니다. – Gopinath

답변

3

업데이트 저는 그렇게 생각하지 않습니다. 열이 목적지에 언급의

당신은 Insert

Insert into destination 
(
column_1, 
column_2, 
.... 
) 
SELECT 
column_1, 
column_2, 
.... 
FROM source 

Note: 호를 할 수 = 열 번호 1 항상 작동하지 않습니다 접근 중 #

소스에 언급.

방법 # 2 항상

+0

# 1이 항상 작동하지 않는 이유를 묻습니다. 테이블 구조에 변화가 없다고 가정합니다. –

+1

@MichaelGardner 원본에서 대상으로 데이터 열을 전송할 때 ** No. 에 열의 언급 = 열의 수 ** 언급 소스 ** – Luv

+0

타이, 그냥 뭔가를 놓치지 않았는지 확인 싶었어요. –