Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan INSERT Bersyarat dalam MySQL untuk Memastikan Baris Unik?

Bagaimana untuk Melakukan INSERT Bersyarat dalam MySQL untuk Memastikan Baris Unik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-13 05:40:13312semak imbas

How to Perform a Conditional INSERT in MySQL to Ensure Unique Rows?

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!

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