Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mencegah INSERT Pendua dalam SQL Menggunakan Pernyataan MERGE?

Bagaimana untuk Mencegah INSERT Pendua dalam SQL Menggunakan Pernyataan MERGE?

Barbara Streisand
Barbara Streisandasal
2024-11-01 14:42:29223semak imbas

How to Prevent Duplicate INSERTs in SQL Using the MERGE Statement?

Mencegah INSERT Duplikat dalam SQL

Memasukkan data ke dalam jadual pangkalan data adalah penting, tetapi kadangkala mengelakkan entri pendua menjadi satu cabaran. Satu contoh sedemikian timbul apabila memasukkan nilai yang disediakan oleh input pengguna. Dalam senario ini, pengguna mungkin tersilap menyerahkan rekod pendua, yang membawa kepada lebihan data dan isu integriti.

Untuk menangani masalah ini, satu penyelesaian yang berkesan ialah menggunakan pernyataan MERGE SQL. Pernyataan MERGE menggabungkan kefungsian operasi INSERT, UPDATE dan DELETE ke dalam satu pernyataan, memberikan kawalan terperinci ke atas manipulasi data. Ia membenarkan anda memasukkan baris baharu hanya jika ia belum wujud dalam jadual.

Untuk jadual khusus anda bernama "Perwakilan," dengan ID medan, No Ahli, DariYr dan ToYr, anda boleh menggunakan MERGE berikut pernyataan untuk mengelakkan sisipan pendua:

<code class="sql">MERGE INTO Delegates D
USING (values(@MemNo, @FromYr,@ToYr)) X ([MemNo],[FromYr],[ToYr])
ON (insert unique key join)
WHEN NOT MATCHED BY TARGET THEN
INSERT ([MemNo],[FromYr],[ToYr]))
VALUES (X.[MemNo],X.[FromYr],X.[ToYr]);</code>

Dalam pertanyaan ini:

  • Pernyataan MERGE digunakan untuk memasukkan baris baharu ke dalam jadual Perwakilan.
  • Penggunaan klausa menentukan jadual maya (X) yang mengandungi nilai yang hendak disisipkan.
  • Klausa ON kosong dalam kes ini kerana kami tidak memadankan berdasarkan mana-mana baris sedia ada.
  • BILA TIDAK Klausa MATCHED BY TARGET menentukan bahawa baris daripada jadual maya harus dimasukkan jika ia belum ada dalam jadual Perwakilan.

Dengan menggunakan pernyataan MERGE ini, anda boleh memastikan baris pendua tidak disisipkan ke dalam jadual Perwakilan anda, memelihara integriti data dan mencegah rekod berlebihan.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah INSERT Pendua dalam SQL Menggunakan Pernyataan MERGE?. 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