Rumah >pangkalan data >tutorial mysql >Bagaimana untuk UPSERT dengan Cekap dengan Pelbagai Lajur dalam 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:
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!