나는 일반적으로 다음 쿼리를 통해 매일 테이블 A에서 tabelB로 데이터를 복사합니다.
REPLACE INTO tableB (id,col1,col2,col3) SELECT id,col1,col2,col3 FROM tableA WHERE date='somedate'
여기서 REPLACE는 스크립트가 실수로 특정 날짜에 대해 두 번 실행되는 것처럼 사용되며 tableA를 tableB에 두 번 복사하지 않습니다. 그러나 문제는 tableB에 두 개의 고유 키 인덱스 (id 및 col1)가 있다는 것입니다. 따라서 REPLACE가 두 번 이상 실행되면이 REPLACE 명령에 의해 인덱스가 삭제되고 다시 생성됩니다. 이것을 피하기 위해 다음을 사용하고 싶습니다.
INSERT INTO tableB (id,col1,col2,col3) VALUES (val1,val2,val3,val4) ON DUPLICATE KEY UPDATE col2=VALUES(col2),col3=VALUES(col3)
그러나 여기서 tableA를 복사 할 때 위의 INSERT ........ ON DUPLICATE KEY UPDATE 쿼리를 사용할 수 없으므로 SELECT 명령을 사용하여 tableA에서 데이터를 복사해야합니다.
따라서 INSERT INTO ........... ON DUPLICATE KEY UPDATE 쿼리를 수정하여 tableA를 복사 할 수 있도록하는 방법과 동시에 스크립트를 두 번 이상 실행하면 데이터 만 업데이트됩니다.
문안 인사
이 INSERT 쿼리를 시도하십시오-
INSERT INTO tableB (id, col1, col2, col3)
SELECT id, col1, col2, col3 FROM tableA WHERE date = 'somedate'
ON DUPLICATE KEY UPDATE col2 = VALUES(col2), col3 = VALUES(col3);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다