Rumah >pangkalan data >tutorial mysql >Bagaimanakah `INSERT ... ON DUPLICATE KEY UPDATE` MySQL Boleh Mengendalikan Operasi Sisipan atau Kemas Kini Dengan Cekap Berdasarkan Kunci Unik?
MySQL Upserts: Memperkemas Sisipan dan Kemas Kini dengan Kekunci Unik
Pengurusan pangkalan data selalunya memerlukan memasukkan baris baharu atau mengemas kini baris sedia ada berdasarkan pengecam unik. MySQL menawarkan penyelesaian yang diperkemas untuk tugas biasa ini: pernyataan INSERT ... ON DUPLICATE KEY UPDATE
. Perintah berkuasa ini mengelakkan kerumitan dan kemungkinan ralat yang dikaitkan dengan pertanyaan INSERT
dan UPDATE
yang berasingan.
Pendekatan tradisional—menggunakan penyataan INSERT
dan UPDATE
berurutan—terdedah kepada kegagalan jika kunci unik sudah wujud. INSERT ... ON DUPLICATE KEY UPDATE
menyelesaikan masalah ini secara elegan dengan melakukan sama ada sisipan atau kemas kini bergantung pada sama ada kunci unik yang sepadan ditemui.
Mari kita menggambarkan dengan jadual bernama users
yang mengandungi lajur id
, name
dan age
, dengan id
ialah kunci unik. Untuk sama ada memasukkan atau mengemas kini baris dengan nilai (1, "Alice", 30), pertanyaan berikut sudah memadai:
<code class="language-sql">INSERT INTO users (id, name, age) VALUES (1, "Alice", 30) ON DUPLICATE KEY UPDATE name = "Alice", age = 30;</code>
Jika pengguna dengan id = 1
wujud, name
dan age
mereka akan dikemas kini. Jika tidak, baris pengguna baharu akan dibuat.
Kaedah ini memastikan integriti dan konsistensi data dengan mengendalikan kedua-dua senario pemasukan dan kemas kini secara cekap dalam satu kenyataan. Ia memudahkan kod, meningkatkan kebolehbacaan dan mengurangkan kemungkinan ralat pangkalan data.
Atas ialah kandungan terperinci Bagaimanakah `INSERT ... ON DUPLICATE KEY UPDATE` MySQL Boleh Mengendalikan Operasi Sisipan atau Kemas Kini Dengan Cekap Berdasarkan Kunci Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!