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 bisa menggabungkan dump yang menyisipkan data baru dan memperbarui data yang dimodifikasi?
Tentu, saya bisa memasukkan ON DUPLICATE
dump secara manual, tetapi saya ingin mengotomatiskan proses penggabungan.
--replace
itu setara dengan melakukanON DUPLICATE UPDATE
pada setiap kolom. Sayangnya, mysqldump tidak dirancang untuk memperbarui kolom tertentu karena sifat pemuatan massal dan pembuangan mysqldump. Jawaban saya hanya mengungkapkan apa yang mampu dilakukan mysqldump. Anda harus menulis kode khusus, selain dari mysqldump, untuk melakukannyaON DUPLICATE UPDATE
.REPLACE INTO
mungkin gagal karena catatan tidak dapat dihapus dengan memutuskan hubungan tersebut. Jika sudahON DELETE CASCADE
, maka Anda akan mengosongkan tabel yang bergantung pada yang diperbarui.REPLACE INTO
Operasi yang cukup berbahaya.REPLACE INTO
) dapat berbahaya dan memiliki efek "mengejutkan". Jawaban yang bagus - hanya ingin menambahkan peringatan.