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
Susan Sarandonasal
2024-12-11 13:57:11660semak imbas

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;

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!

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