한 데이터베이스에서 다른 데이터베이스로 데이터를 병합하고 싶습니다. 따라서 with with dump를 작성한 mysqldump
다음 동일한 테이블 구조를 가진 다른 데이터베이스로 가져옵니다. 이 경우 문제가 없습니다 (예 : 중복 항목 또는 다른 것).
그러나 테스트 목적으로 일부 병합을 수행하고 나중에 최종 병합을 수행합니다. 그래서 몇 번 병합 (데이터가 변경 될 수 있음)을 실행하고 싶습니다. 테이블의 행은 삭제되지 않으며 삽입 또는 업데이트 만 가능합니다.
ON DUPLICATE 옵션으로 mysqldump를 만들 수 있습니까? 아니면 새 데이터를 삽입하고 수정 된 데이터를 업데이트하는 덤프를 병합 할 수 있습니까?
물론 ON DUPLICATE
덤프에 수동으로 삽입 할 수는 있지만 병합 프로세스를 자동화하고 싶습니다.
답변
이에 도움이되는 옵션이 있습니다.
--insert-ignore Insert rows with INSERT IGNORE.
--replace Use REPLACE INTO instead of INSERT INTO.
-t, --no-create-info
Don't write table creation info.
이 패러다임을 명심하십시오
- DB1에서 DUMP1로 mysqldump
- DUMP1을 DB3에로드
- –replace (또는 –insert-ignore) 및 –no-create-info를 사용하여 DB2에서 모든 것을 mysqldump
- DUMP2를 DB3에로드