Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memastikan Baris Unik Apabila Memasukkan Data ke dalam MySQL?

Bagaimana untuk Memastikan Baris Unik Apabila Memasukkan Data ke dalam MySQL?

DDD
DDDasal
2024-12-25 21:27:09766semak imbas

How to Ensure Unique Rows When Inserting Data into MySQL?

Sisipan Bersyarat MySQL: Memastikan Keunikan Baris

MySQL menyediakan mekanisme serba boleh untuk sisipan data, membolehkan anda melaksanakan sisipan bersyarat yang menghalang baris pendua.

Menggunakan INSERT...SELECT Syntax

Jika versi MySQL anda menyokong pemilihan daripada jadual lain semasa sisipan, pertimbangkan pertanyaan berikut:

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, dwi ialah jadual satu baris yang memastikan ketersediaan baris yang sah, manakala keadaan NOT EXISTS menyemak ketiadaan baris pendua. Jika tiada padanan ditemui, baris baharu akan disisipkan.

Menerokai Pernyataan MERGE

Sebagai alternatif, pernyataan MERGE menyediakan alat yang berkuasa untuk sisipan bersyarat. Sintaksnya adalah seperti berikut:

MERGE INTO x_table AS target
USING (
    SELECT 919191 AS instance, 123 AS user, 456 AS item
) AS source
ON (target.user = source.user AND target.item = source.item)
WHEN NOT MATCHED THEN INSERT VALUES (source.instance, source.user, source.item);
Dalam kes ini, klausa USING menentukan nilai yang hendak disisipkan, manakala klausa ON menetapkan kriteria padanan. Jika tiada baris yang sepadan wujud dalam jadual sasaran (x_table), INSERT dilakukan.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Baris Unik Apabila Memasukkan Data ke 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