it-swarm.asia

mysqldump dengan INSERT ... ON DUPLICATE

Saya ingin menggabungkan data dari satu database ke yang lain. Jadi saya membuat dump dengan mysqldump dan kemudian mengimpornya ke database lain (dengan struktur tabel yang sama). Saya tidak memiliki masalah (seperti entri duplikat atau sesuatu yang lain) dalam kasus ini.

Tapi saya melakukan beberapa penggabungan untuk tujuan pengujian dan saya akan melakukan penggabungan akhir nanti. Jadi, saya ingin menjalankan penggabungan (data dapat diubah) beberapa kali. Perhatikan, baris saya di tabel saya tidak pernah dihapus, hanya bisa dimasukkan atau diperbarui.

Bisakah saya membuat mysqldump dengan opsi ON DUPLICATE? Atau mungkin saya dapat menggabungkan dump yang menyisipkan data baru dan memperbarui data yang dimodifikasi?

Tentu, saya bisa memasukkan ON DUPLICATE dalam dump secara manual, tetapi saya ingin mengotomatiskan proses penggabungan.

22
Xupypr MV

Ada beberapa opsi untuk membantu Anda dalam hal ini:

  --insert-ignore     Insert rows with INSERT IGNORE.
  --replace           Use REPLACE INTO instead of INSERT INTO.
  -t, --no-create-info
                      Don't write table creation info.

Ingat paradigma ini dalam pikiran

  • mysqldump semuanya dari DB1 ke DUMP1
  • memuat DUMP1 ke dalam DB3
  • mysqldump semuanya dari DB2 menggunakan --replace (atau --insert-diabaikan) dan --no-create-info ke DUMP2
  • memuat DUMP2 ke DB3
37
RolandoMySQLDBA