MySQL Table Merge: Panduan Lengkap
Gabungkan dua jadual MySQL dengan struktur yang sama, yang menimbulkan cabaran unik disebabkan kemungkinan konflik utama utama. Walau bagaimanapun, terdapat beberapa cara yang berkesan untuk menyelesaikan tugas ini.
Kaedah 1: INSERT IGNORE
Untuk mengekalkan baris sedia ada dalam table_1 dan hanya memasukkan baris baharu dalam table_2, anda boleh menggunakan pertanyaan berikut:
<code class="language-sql">INSERT IGNORE INTO table_1 SELECT * FROM table_2;</code>
Kaedah 2: GANTIKAN
Sebagai alternatif, jika anda ingin menggantikan baris sedia ada dalam table_1 dengan baris yang sepadan dalam table_2 sambil memasukkan baris baharu, anda boleh menggunakan pertanyaan berikut:
<code class="language-sql">REPLACE INTO table_1 SELECT * FROM table_2;</code>
Nota tentang konflik kunci utama
Kaedah INSERT IGNORE dan REPLACE mengendalikan konflik kunci utama secara berbeza. INSERT IGNORE memasukkan baris baharu tanpa nilai kunci utama yang bercanggah. REPLACE mengemas kini baris sedia ada tanpa mengira konflik kunci utama.
Contoh
Pertimbangkan dua jadual, jadual_1 dan jadual_2, yang mengandungi data berikut:
table_1 | |
---|---|
id | name |
1 | John |
2 | Mary |
table_2 | |
---|---|
id | name |
1 | Mike |
2 | Sarah |
3 | Peter |
Gunakan INSERT IGNORE untuk membuat pertanyaan, hasilnya adalah seperti berikut:
table_1 | |
---|---|
id | name |
1 | John |
2 | Mary |
3 | Peter |
Baris dalam jadual_2 dengan kunci utama yang sepadan akan diabaikan dan hanya baris dengan kunci utama yang tidak wujud akan disisipkan.
Gunakan pertanyaan REPLACE, hasilnya adalah seperti berikut:
table_1 | |
---|---|
id | name |
1 | Mike |
2 | Sarah |
3 | Peter |
Baris dalam jadual_1 dengan kekunci utama yang sepadan akan digantikan dengan baris yang sepadan dalam jadual_2.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Jadual MySQL dengan Struktur Yang Sama dan Mengendalikan Konflik Utama Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!