Rumah > pangkalan data > tutorial mysql > Bagaimanakah INSERT MySQL ... PADA KEMASKINI KUNCI DUA Memudahkan Sisipan dan Kemas Kini Bersyarat?

Bagaimanakah INSERT MySQL ... PADA KEMASKINI KUNCI DUA Memudahkan Sisipan dan Kemas Kini Bersyarat?

Barbara Streisand
Lepaskan: 2025-01-21 12:04:14
asal
196 orang telah melayarinya

How Can MySQL's INSERT ... ON DUPLICATE KEY UPDATE Simplify Conditional Inserts and Updates?

MYSQL's INSERT ... PADA pernyataan KEMASKINI KUNCI DUA: Penyisipan dan kemas kini bersyarat dipermudahkan

Apabila menggunakan pangkalan data hubungan seperti MySQL, anda mungkin perlu melaksanakan operasi sisipan atau kemas kini secara bersyarat. Ini berlaku apabila anda perlu mencipta rekod baharu jika ia tidak wujud, atau mengemas kini rekod jika ia sudah wujud. Pendekatan tradisional ialah menggunakan gabungan pertanyaan SELECT dan INSERT atau UPDATE, yang boleh menjadi rumit dan tidak cekap.

Nasib baik, MySQL menyediakan penyelesaian yang lebih elegan: pernyataan INSERT ... ON DUPLICATE KEY UPDATE. Perintah serba boleh ini membolehkan anda memasukkan baris jika rekod tidak wujud, atau mengemas kini baris jika baris dengan kunci yang sama sudah wujud dalam jadual.

Tatabahasa:

<code class="language-sql">INSERT INTO `table_name` (`column_list`)
VALUES (`value_list`)
ON DUPLICATE KEY UPDATE `column_name` = `new_value`</code>
Salin selepas log masuk

Cara ia berfungsi:

  • Pertanyaan mengikut sintaks INSERT standard, menentukan jadual sasaran dan menyediakan senarai lajur dan nilai sepadannya.
  • Jika tiada baris dengan kunci utama yang sepadan atau nilai kunci unik wujud, masukkan baris baharu ke dalam jadual.
  • Jika terdapat baris dengan nilai kunci yang sama, klausa ON DUPLICATE KEY UPDATE menentukan lajur yang harus dikemas kini dengan nilai yang dibekalkan.

Contoh:

Pertimbangkan contoh berikut:

<code class="language-sql">INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` + 1</code>
Salin selepas log masuk
  • Jika thing_id mempunyai nilai kunci utama 4815162342 yang tidak wujud, masukkan baris baharu ke dalam jadual usage menggunakan nilai yang ditentukan.
  • Jika thing_id mempunyai nilai kunci utama 4815162342 sudah wujud, kemas kini lajur times_used dengan menambah 1 pada nilai semasanya.

Kelebihan:

  • Sintaks ringkas: INSERT ... ON DUPLICATE KEY UPDATE menyediakan cara yang ringkas dan jelas untuk melaksanakan operasi sisipan dan kemas kini menggunakan satu pertanyaan.
  • Kecekapan: Ia mengelakkan pertanyaan SELECT yang tidak perlu untuk menyemak rekod sedia ada, sekali gus mengurangkan beban kerja pangkalan data dan meningkatkan prestasi.
  • Mati pucuk: Operasi ini adalah idempoten, yang bermaksud melaksanakannya beberapa kali tidak akan mengubah data atau mencetuskan sebarang ralat. Ini memudahkan pemprosesan kod dan memastikan integriti data.

Atas ialah kandungan terperinci Bagaimanakah INSERT MySQL ... PADA KEMASKINI KUNCI DUA Memudahkan Sisipan dan Kemas Kini Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan