Dump tabel mysql pada impor menggantikan catatan yang ada

9

Saya mengambil dump menggunakan mysqldump ..

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

Kemudian saya mengimpor dump di database lain yang memiliki tabel yang sama, tetapi catatan berbeda ..

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

Impor db memiliki catatan dari primary_key 1 hingga 1000, dan db yang mengekspor memiliki 5.000 hingga 10.000 ..

Tetapi saat mengimpor catatan yang ada, yaitu 1 hingga 1000 dihapus ..

Bagaimana?? Mengapa?? Jika itu perilaku default, opsi apa yang dapat saya berikan untuk dibuang agar tidak terjadi lagi di lain waktu.

Rajat Singhal
sumber

Jawaban:

12

Mysqldump, secara default, akan menjatuhkan tabel. Anda harus menentukan --no-create-infoopsi seperti ini:

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

Dengan begitu, Anda hanya memiliki sisipan untuk ditangani. Menggunakan --skip-extended-insertakan menyisipkan satu baris sekaligus. Ini membantu menangani masalah duplikat, tetapi Anda harus mengimpor seperti ini:

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

The --forcepilihan adalah untuk tujuan tunggal INSERT terus dalam acara kunci duplikat ditemui. Dalam hal itu, kesalahan INSERT yang menyinggung itu diabaikan dan terus ke INSERT berikutnya.

RolandoMySQLDBA
sumber
apakah mungkin untuk mengambil kembali data yang dihapus selama dump?
Arun Kumaresh