가져 오기에서 mysql 테이블 덤프로 기존 레코드 교체 1000까지의 레코드가 있고

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로 넘어갑니다.


답변