2016-09-08 2 views
0

두 테이블 originaloriginal_backup이 있는데, 모든 데이터를 original_backup에서 가져 와서 다시 original에 넣는 롤백 스크립트를 만들고 있습니다. 문제는 약 60 개의 열이 있다는 것입니다. 모든 열을 지정하지 않고 UPDATESET을 사용하여 모든 데이터를 쉽게 이동할 수 있습니까? 같은 예를 들어 뭔가를MySQL이 다른 테이블의 모든 값을 업데이트합니다.

: UPDATE original SET * FROM original_backup WHERE original.id = original_backup.id;

REPLACE을 사용하여이 경우 옵션을 선택하지 않습니다.

+0

아니요 가능하지 않습니다 – Drew

+0

[IODKU] (http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html) 및 진짜 [Rube Goldberg] (https://en.wikipedia.org/wiki/Rube_Goldberg) 방법 – Drew

답변

0

당신은 두 단계 일로 작업을 수행 할 수 있습니다

DELETE FROM original 
INSERT INTO original SELECT * FROM original_backup 

이 시간이 좀 걸릴 것입니다.

CREATE TABLE original_restored AS SELECT * FROM original_backup 
RENAME TABLE original TO original_prev, original_restored TO original 
0

이가 내 솔루션지만 UPDATE 문을 사용하지 메신저 : 더 깨끗하게 이상 잘라 원래

2에서 모든 데이터를)

1 삭제)를 선택 삽입 쿼리를 실행

INSERT INTO original (Field1, Field2) 
SELECT a.Field1, a.Field2 
FROM original_backup a 
INNER JOIN original b ON a.ID = b.ID 
관련 문제