Sisipan Bersyarat MySQL: Memasukkan Hanya jika Unik
MySQL menyediakan sokongan terhad untuk sisipan bersyarat. Dalam kes khusus ini, anda menyasarkan untuk memasukkan baris ke dalam x_table hanya jika gabungan pengguna dan item tidak wujud.
Pernyataan INSERT MySQL tidak membenarkan pemasukan bersyarat langsung. Walau bagaimanapun, anda boleh menggunakan penyelesaian menggunakan subquery. Satu pendekatan ialah menggunakan klausa NOT EXISTS:
INSERT INTO x_table (instance, user, item) SELECT 919191, 123, 456 FROM dual WHERE NOT EXISTS ( SELECT * FROM x_table WHERE user = 123 AND item = 456 );
Dalam pertanyaan ini, subquery dengan NOT EXISTS menyemak sama ada pengguna dan item yang ditentukan sudah wujud dalam x_table. Jika tidak, baris baharu akan disisipkan. Jika tidak, tiada apa yang berlaku.
Pilihan lain ialah menggunakan pernyataan MERGE, yang membenarkan penetapan operasi pemasukan dan kemas kini bersyarat dalam satu pernyataan. Walau bagaimanapun, MERGE hanya disokong dalam MySQL sebagai sambungan, bukan sebagai sebahagian daripada fungsi teras.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan INSERT Bersyarat dalam MySQL untuk Memastikan Baris Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!