Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Sisipan Bersyarat dalam MySQL?

Bagaimana untuk Melakukan Sisipan Bersyarat dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-26 20:41:10
asal
463 orang telah melayarinya

How to Perform Conditional Inserts in MySQL?

Mencapai Sisipan Bersyarat dalam MySQL

Dalam MySQL, sisipan bersyarat boleh mencabar kerana ketiadaan kata kunci khusus khusus untuk tujuan ini. Oleh itu, pendekatan alternatif mesti digunakan.

Pendekatan Menggunakan Subkueri:

Satu penyelesaian yang berkesan ialah menggunakan subkueri untuk menyemak baris sedia ada dengan kriteria padanan. Pertanyaan berikut akan memasukkan baris baharu ke dalam jadual x hanya jika baris dengan pengguna dan nilai item yang sama tidak wujud:

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);
Salin selepas log masuk

Subkueri memastikan bahawa pernyataan INSERT dilaksanakan hanya jika syarat dipenuhi. dual ialah jadual satu baris yang menyediakan sumber mudah untuk pernyataan SELECT.

Pendekatan Alternatif dengan MERGE:

Pilihan lain untuk sisipan bersyarat ialah menggunakan MERGE kenyataan. Pernyataan MERGE membenarkan kedua-dua sisipan dan kemas kini dalam satu operasi. Pertanyaan berikut akan memasukkan baris baharu ke dalam jadual x jika ia belum wujud, jika tidak, ia akan mengemas kini baris sedia ada:

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 (instance, user, item) VALUES (source.instance, source.user, source.item)
WHEN MATCHED THEN UPDATE SET instance = source.instance;
Salin selepas log masuk

Dalam pendekatan ini, pernyataan MERGE menyemak baris sedia ada dengan padanan terlebih dahulu nilai pengguna dan item. Jika tiada padanan ditemui, baris baharu akan disisipkan menggunakan data daripada subkueri sumber. Jika padanan ditemui, nilai kejadian dikemas kini.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Sisipan Bersyarat dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan