Apabila bekerja dengan pengecam unik berbilang lajur dalam MySQL, cabaran timbul untuk mengendalikan kedua-dua kemas kini dan sisipan. Walaupun sintaks 'KEMASKINI PADA KUNCI DUPLICATE' kelihatan seperti penyelesaian yang sesuai, ia memerlukan kunci unik untuk berfungsi.
Walau bagaimanapun, anda boleh mencipta kunci komposit daripada berbilang lajur, yang akan membenarkan 'KEMASKINI PADA KUNCI DUPLICATE' untuk berfungsi seperti yang dikehendaki. Begini cara untuk mendekati perkara ini:
Untuk mencipta kunci komposit, gunakan sintaks berikut:
CREATE INDEX <index_name> ON <table_name> (<column1>, <column2>);
Sebagai contoh, mari buat kunci komposit untuk jadual tiga lajur yang disebut dalam soalan:
CREATE INDEX unique_index ON my_table (col_1, col_2);
Setelah kekunci komposit dicipta, anda boleh melaksanakan pertanyaan 'KEMASKINI PADA KUNCI PENDUPLICATE' sama ada untuk mengemas kini atau memasukkan rekod berdasarkan nilai kunci. Sintaksnya adalah seperti berikut:
INSERT INTO <table_name> (col_1, col_2, col_3) VALUES ('value1', 'value2', 'value3') ON DUPLICATE KEY UPDATE col_3=col_3+1;
Dalam pertanyaan ini, jika rekod dengan nilai col_1 dan col_2 yang ditentukan sudah wujud, col_3 akan ditambah sebanyak 1. Jika tidak, rekod baharu akan dimasukkan.
Atas ialah kandungan terperinci Bagaimanakah Kekunci Komposit Boleh Meningkatkan Prestasi `KEMASKINI PADA KUNCI DUA` MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!