mysqldump를 사용하여 덤프를 수행했습니다.
mysqldump -u... -p... mydb t1 > mydb_table.sql
그런 다음 동일한 테이블이지만 다른 레코드를 가진 다른 데이터베이스에서 덤프를 가져 왔습니다.
mysql -u...-p... mydb < mydb_tables.sql
가져 오기 DB에는 primary_key 1에서 1000까지의 레코드가 있고 내보내기 db에는 5000에서 10,000이 있습니다.
그러나 기존 레코드를 가져올 때, 즉 1에서 1000까지 삭제되었습니다.
어떻게?? 왜?? 기본 동작 인 경우 다음에 발생하지 않도록 덤프 할 수있는 옵션은 무엇입니까?
답변
기본적으로 mysqldump는 테이블을 삭제합니다. 다음 --no-create-info
과 같이 옵션을 지정해야합니다 .
mysqldump -u... -p... --no-create-info --skip-extended-insert mydb t1 > mydb_table.sql
이렇게하면 처리 할 삽입물 만 있습니다. 를 사용 --skip-extended-insert
하면 한 번에 한 행씩 삽입됩니다. 이 문제는 중복 문제를 해결하는 데 도움이되지만 다음과 같이 가져옵니다.
mysql -u...-p... --force mydb < mydb_tables.sql
이 --force
옵션은 중복 키가 발생할 경우 INSERT를 계속하기위한 것입니다. 이 경우 문제가되는 INSERT의 오류는 무시되고 다음 INSERT로 넘어갑니다.