Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan atau Mengemas kini Baris dalam MySQL Menggunakan INSERT...PADA KEMASKINI KUNCI DUA?

Bagaimana untuk Memasukkan atau Mengemas kini Baris dalam MySQL Menggunakan INSERT...PADA KEMASKINI KUNCI DUA?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-24 02:32:09588semak imbas

How to Insert or Update Rows in MySQL Using INSERT...ON DUPLICATE KEY UPDATE?

Mengendalikan Konflik Kunci Pendua dalam MySQL: INSERT...PADA KEMASKINI KUNCI DUA

Apabila memasukkan data ke dalam jadual MySQL dengan kekangan kunci unik, konflik timbul jika kunci pendua ditemui. Pernyataan INSERT...ON DUPLICATE KEY UPDATE secara elegan menyelesaikan masalah ini dengan membenarkan anda sama ada memasukkan baris baharu atau mengemas kini baris sedia ada berdasarkan kunci unik.

Mari kita pertimbangkan jadual dengan lajur 'ID' yang unik. Jika anda cuba memasukkan baris dengan ID sedia ada, pernyataan INSERT standard akan gagal. INSERT...ON DUPLICATE KEY UPDATE menyediakan penyelesaian.

Contoh Senario:

Bayangkan anda menambah data pada users jadual:

INSERT INTO users (ID, Name, Age) VALUES (1, "Bob", 30);

Jika pengguna dengan ID = 1 sudah wujud, pertanyaan ini akan gagal.

Penyelesaian:

Gunakan INSERT...ON DUPLICATE KEY UPDATE:

INSERT INTO users (ID, Name, Age) VALUES (1, "Bob", 30) ON DUPLICATE KEY UPDATE Name = "Bob", Age = 30;

Penjelasan:

  • Bahagian INSERT menentukan data yang akan dimasukkan.
  • ON DUPLICATE KEY UPDATE menentukan tindakan kemas kini jika kunci pendua ditemui.
  • Dalam contoh ini, jika ID = 1 wujud, lajur Name dan Age akan dikemas kini dengan nilai yang disediakan. Jika ID = 1 tidak wujud, baris baharu akan disisipkan.

Pendekatan ini memastikan integriti data sambil menghalang ralat yang disebabkan oleh sisipan kunci pendua. Ia adalah cara yang ringkas dan cekap untuk mengurus kemas kini data dalam MySQL.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan atau Mengemas kini Baris dalam MySQL Menggunakan INSERT...PADA KEMASKINI KUNCI DUA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn