Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menghalang Nilai Pendua Semasa Memasukkan Data dalam Jadual \'Perwakilan\'?

Bagaimana untuk Menghalang Nilai Pendua Semasa Memasukkan Data dalam Jadual \'Perwakilan\'?

Susan Sarandon
Susan Sarandonasal
2024-11-01 08:08:30974semak imbas

How to Prevent Duplicate Values During Data Insertion in a

Mencegah Nilai Pendua Semasa Memasukkan Data

Pernyataan Masalah:

Dalam jadual bernama " Perwakilan," yang mengandungi maklumat ahli unik serta medan julat "DariYr" dan "ToYr," sisipan data menggunakan input pengguna berisiko pertindihan ahli untuk tahun yang sama.

Penyelesaian:

Untuk menangani isu ini dan memastikan integriti data, kami boleh memanfaatkan kenyataan MERGE. Pernyataan MERGE membenarkan kami melakukan sisipan bersyarat, mengemas kini rekod hanya jika ia belum wujud dalam jadual.

Pelaksanaan:

<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>

Penjelasan:

  • GABUK INTO: Pernyataan ini menentukan jadual sasaran ("Wakil") untuk dikemas kini atau dimasukkan ke dalamnya.
  • MENGGUNA: Klausa ini mentakrifkan data sumber ("X") yang dibandingkan terhadap jadual sasaran.
  • HIDUP: Kriteria gabungan menentukan syarat di mana baris harus dipadankan semasa operasi gabungan. Dalam kes ini, gabungan kunci unik (cth., No Ahli dan tahun) digunakan untuk mengenal pasti apabila baris sudah wujud.
  • APABILA TIDAK DIPADAKAN DENGAN SASARAN MAKA: Pernyataan ini mentakrifkan tindakan untuk diambil jika tiada baris yang sepadan ditemui dalam jadual sasaran. Dalam kes ini, INSERT dilakukan untuk menambah baris baharu.

Atas ialah kandungan terperinci Bagaimana untuk Menghalang Nilai Pendua Semasa Memasukkan Data dalam Jadual \'Perwakilan\'?. 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