El volcado de una tabla mysql en importación reemplazó los registros existentes

9

Tomé un basurero usando mysqldump ..

mysqldump -u... -p... mydb t1 > mydb_table.sql

Luego importé el volcado en otra base de datos que tiene la misma tabla, pero diferentes registros ...

mysql -u...-p... mydb < mydb_tables.sql

El db de importación tenía registros de primary_key 1 a 1000, y el db de exportación tenía 5000 a 10,000.

Pero al importar los registros existentes, es decir, se eliminaron del 1 al 1000 ...

¿¿Cómo?? ¿¿Por qué?? Si es un comportamiento predeterminado, qué opciones puedo dar para volcar para que no ocurra la próxima vez ...

Rajat Singhal
fuente

Respuestas:

12

Mysqldump, por defecto, soltará la tabla. Debe especificar la --no-create-infoopción de esta manera:

mysqldump -u... -p... --no-create-info --skip-extended-insert mydb t1 > mydb_table.sql

De esa manera, solo tienes insertos con los que lidiar. El uso --skip-extended-insertinsertará una fila a la vez. Esta ayuda trata problemas duplicados, pero tendrá que importar de esta manera:

mysql -u...-p... --force mydb < mydb_tables.sql

La --forceopción tiene el único propósito de continuar INSERTAR en caso de que se encuentre una clave duplicada. En ese caso, el error del INSERT ofensor se ignora y pasa al siguiente INSERT.

RolandoMySQLDBA
fuente
¿Es posible recuperar los datos que se eliminan durante el volcado?
Arun Kumaresh