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
Lepaskan: 2024-11-15 13:12:02
asal
211 orang telah melayarinya

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', ...
Salin selepas log masuk

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!

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