Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melakukan Upserts dengan Cekap dalam MySQL?

Bagaimanakah Saya Boleh Melakukan Upserts dengan Cekap dalam MySQL?

DDD
Lepaskan: 2025-01-21 11:47:11
asal
475 orang telah melayarinya

How Can I Efficiently Perform Upserts in MySQL?

Kendalian Upsert MySQL: kemas kini jika wujud, masukkan jika tidak wujud

Soalan:

Dalam MySQL, adakah terdapat cara yang cekap untuk melaksanakan operasi "Upsert", iaitu memasukkan baris baharu jika ia tidak wujud, dan mengemas kini baris sedia ada jika ia wujud?

Jawapan:

Ya, MySQL menyediakan sintaks INSERT ... ON DUPLICATE KEY UPDATE untuk mencapai fungsi ini. Berikut ialah contoh:

Contoh:

<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

Arahan:

    Klausa
  • INSERT INTO cuba memasukkan baris baharu dengan nilai yang ditentukan.
  • Klausa
  • ON DUPLICATE KEY UPDATE mentakrifkan perkara yang sepatutnya berlaku jika konflik kunci unik berlaku (iaitu jika baris dengan thing_id yang sama sudah wujud).
  • Dalam contoh ini, baris sedia ada dikemas kini dengan menambah 1 pada lajur times_used.

Kelebihan:

  • Cekap: Laksanakan operasi Upsert melalui satu pertanyaan, mengurangkan bilangan perjalanan pergi-balik pangkalan data.
  • Keselamatan: Kendalikan konflik baris pendua dengan lancar dan pastikan integriti data.
  • Fleksibel: boleh digunakan untuk memasukkan baris baharu, mengemas kini baris sedia ada atau kedua-duanya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Upserts dengan Cekap dalam MySQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan