Rumah > pangkalan data > tutorial mysql > Bagaimana untuk UPSERT dengan Cekap dengan Pelbagai Lajur dalam MySQL?

Bagaimana untuk UPSERT dengan Cekap dengan Pelbagai Lajur dalam MySQL?

Susan Sarandon
Lepaskan: 2024-12-11 13:57:11
asal
674 orang telah melayarinya

How to Efficiently UPSERT with Multiple Columns in MySQL?

Cara Melakukan UPSERT yang Cekap dengan Pelbagai Lajur

Memasukkan atau mengemas kini data dalam jadual pangkalan data menggunakan UPSERT (masukkan pada kemas kini pendua) boleh menjadi tugas biasa. Walau bagaimanapun, apabila bekerja dengan berbilang lajur dalam pernyataan kemas kini, adalah penting untuk mempertimbangkan prestasi dan kebolehselenggaraan.

Mengendalikan Berbilang Lajur dalam UPSERT

Dalam contoh anda, anda menyasarkan untuk memasukkan atau mengemas kini baris dalam jadual item, menambah nilai item_dalam_saham jika baris itu wujud. Walaupun pendekatan awal anda menggunakan subkueri dalam bahagian kemas kini mungkin kelihatan logik, ia memperkenalkan kerumitan yang tidak perlu.

Memilih Penyataan Kemas Kini Ringkas

Pendekatan yang lebih baik adalah untuk mengelakkan subkueri dalam kenyataan kemas kini. Sebaliknya, gunakan keupayaan MySQL untuk merujuk nilai lama dan baharu lajur yang dikemas kini. Ini membolehkan anda menulis pernyataan kemas kini yang ringkas dan cekap.

Contoh menggunakan Rujukan Nilai MySQL

Pertimbangkan pernyataan UPSERT berikut:

INSERT INTO `item`
(`item_name`, `items_in_stock`)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`items_in_stock` = `items_in_stock` + 27;
Salin selepas log masuk

Dalam contoh ini, nilai item_dalam_saham dikemas kini dengan menambahkan nilai item_dalam_saham baharu kepada yang sebelumnya. MySQL secara automatik merujuk kepada nilai item_in_stock lama, menghapuskan keperluan untuk subquery.

Kelebihan Pendekatan ini:

  • Kesederhanaan dan kebolehbacaan: Kenyataan kemas kini adalah jelas dan mudah untuk faham.
  • Prestasi: Dengan mengelakkan subkueri, anda meningkatkan prestasi dan mengurangkan kerumitan pertanyaan.
  • Selenggara: Lebih mudah untuk dikekalkan dan nyahpepijat kenyataan kemas kini tanpa subkueri.

Sentiasa Pertimbangkan Kesederhanaan

Ingat, penyelesaian yang paling berkesan selalunya yang paling mudah. Jika anda mendapati diri anda terlalu merumitkan masalah, kemungkinan besar anda telah mengambil pendekatan yang salah. Hayati kesederhanaan dan dapatkan penyelesaian yang cekap dan boleh diselenggara untuk operasi pangkalan data anda.

Atas ialah kandungan terperinci Bagaimana untuk UPSERT dengan Cekap dengan Pelbagai Lajur 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan