Rumah >pangkalan data >tutorial mysql >Bagaimanakah INSERT MySQL ... PADA KEMASKINI KUNCI DUA Menyelesaikan Masalah Sisipan atau Kemas Kini?
MySQL Upsert: Memasukkan atau Kemas Kini Data dengan Cekap
Pengurusan pangkalan data kerap memerlukan memasukkan rekod baharu atau mengemas kini rekod sedia ada berdasarkan pengecam unik. Kenyataan INSERT ... ON DUPLICATE KEY UPDATE
MySQL menawarkan penyelesaian yang elegan untuk operasi "upsert" ini.
Cabaran:
Menambah data pada jadual selalunya menghadapi ralat apabila rekod dengan kunci utama atau unik yang sama sudah wujud.
Senario Ilustrasi:
Bayangkan jadual bernama users
dengan lajur id
, username
dan email
. Kenyataan INSERT
mudah mungkin gagal jika pengguna dengan id
yang sama sudah wujud:
<code class="language-sql">INSERT INTO users (id, username, email) VALUES (1, 'JohnDoe', 'john.doe@example.com');</code>
Penyelesaian INSERT ... ON DUPLICATE KEY UPDATE
:
Konstruk MySQL yang berkuasa ini membolehkan anda memasukkan baris baharu dengan lancar jika ia tidak wujud atau mengemas kini baris sedia ada jika kunci yang sepadan ditemui.
Contoh Praktikal:
<code class="language-sql">INSERT INTO users (id, username, email) VALUES (1, 'JohnDoe', 'john.doe@example.com') ON DUPLICATE KEY UPDATE username = 'JohnDoe', email = 'john.doe@example.com';</code>
Pertanyaan ini sama ada akan memasukkan pengguna baharu dengan id = 1
atau mengemas kini username
dan email
pengguna sedia ada jika rekod dengan id
itu sudah wujud. Ini mengelakkan keperluan untuk pernyataan INSERT
dan UPDATE
yang berasingan serta meningkatkan kecekapan.
Atas ialah kandungan terperinci Bagaimanakah INSERT MySQL ... PADA KEMASKINI KUNCI DUA Menyelesaikan Masalah Sisipan atau Kemas Kini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!