Rumah >pangkalan data >tutorial mysql >Bagaimana Mengemas kini atau Memasukkan Rekod dengan Cekap dalam MySQL Berdasarkan Kewujudannya?

Bagaimana Mengemas kini atau Memasukkan Rekod dengan Cekap dalam MySQL Berdasarkan Kewujudannya?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 13:12:02212semak imbas

How to Efficiently Update or Insert Records in MySQL Based on Their Existence?

MySQL: Mengemas kini atau Memasukkan Rekod Berdasarkan Kewujudan

Apabila berurusan dengan pangkalan data, adalah perkara biasa untuk menghadapi senario di mana anda perlu sama ada mengemas kini atau memasukkan rekod berdasarkan kewujudannya. Jika anda menggunakan PHP dan MySQL, soalan ini sering timbul.

Dalam konteks ini, pertanyaan asal cuba menggabungkan kemas kini dan memasukkan pernyataan menggunakan sintaks IF EXISTS. Walau bagaimanapun, ini bukan pendekatan yang paling cekap.

Untuk mencapai kefungsian yang diingini, anda harus mempertimbangkan untuk menggunakan sintaks INSERT ... PADA KEMASKINI KUNCI PENDUPLICATE. Berikut ialah sintaks yang betul:

INSERT INTO <table> (field1, field2, field3, ...) 
VALUES ('value1', 'value2','value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...

Dengan sintaks ini, anda boleh melaksanakan kedua-dua operasi INSERT dan UPDATE dalam satu pertanyaan. Jika rekod tidak wujud (berdasarkan kunci utama atau indeks unik), ia akan dimasukkan. Jika rekod sudah wujud, ia akan dikemas kini dengan nilai yang disediakan.

Adalah penting untuk ambil perhatian bahawa nilai baris yang terjejas untuk setiap baris ialah:

  • 1 jika baris itu ialah disisipkan sebagai baris baharu.
  • 2 jika baris sedia ada dikemas kini.
  • 0 jika baris sedia ada ialah ditetapkan kepada nilai semasanya.

Pendekatan ini lebih cekap dan lebih mudah untuk dikekalkan daripada mengendalikan kemas kini dan operasi sisipan secara berasingan.

Atas ialah kandungan terperinci Bagaimana Mengemas kini atau Memasukkan Rekod dengan Cekap dalam MySQL Berdasarkan Kewujudannya?. 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