Il dump di una tabella mysql durante l'importazione ha sostituito i record esistenti


9

Ho preso una discarica usando mysqldump ..

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

Quindi ho importato il dump in un altro database con la stessa tabella, ma record diversi ..

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

Il db di importazione aveva record da primary_key da 1 a 1000 e il db di esportazione aveva da 5000 a 10.000 ..

Ma durante l'importazione dei record esistenti, ovvero 1 a 1000 sono stati eliminati ..

Come?? Perché?? Se si tratta di un comportamento predefinito, quali opzioni posso dare al dump per non farlo accadere la prossima volta ..

Risposte:


12

Il mysqldump, per impostazione predefinita, eliminerà la tabella. È necessario specificare l' --no-create-infoopzione in questo modo:

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

In questo modo, hai solo inserti da affrontare. Utilizzando --skip-extended-insertverrà inserita una riga alla volta. Questo aiuto risolve problemi duplicati, ma dovrai importare in questo modo:

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

L' --forceopzione ha il solo scopo di continuare gli INSERTI nel caso in cui venga rilevata una chiave duplicata. In tal caso, l'errore INSERT offensivo viene ignorato e passa al successivo INSERT.


è possibile recuperare i dati che vengono eliminati durante il dump?
Arun Kumaresh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.