Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memastikan Hanya Satu Rekod Lalai Wujud bagi setiap Pengecam Unik dalam Pelayan SQL?

Bagaimana untuk Memastikan Hanya Satu Rekod Lalai Wujud bagi setiap Pengecam Unik dalam Pelayan SQL?

Susan Sarandon
Lepaskan: 2025-01-04 07:55:35
asal
286 orang telah melayarinya

How to Ensure Only One Default Record Exists per Unique Identifier in SQL Server?

Mengekalkan Rekod Lalai Tunggal: Penguatkuasaan Kekangan

Dalam sistem pengurusan pangkalan data, memastikan integriti dan konsistensi data adalah penting. Satu senario sedemikian memerlukan mengehadkan bilangan rekod yang ditandakan sebagai "lalai" kepada hanya satu setiap set baris yang dikenal pasti oleh pengecam unik. Bagaimanakah ini boleh dicapai?

Penyelesaian Indeks Penapis Unik

Untuk versi SQL Server 2008 dan ke atas, indeks ditapis unik menawarkan penyelesaian yang elegan. Dengan mencipta indeks yang ditapis yang unik, seperti yang ditunjukkan di bawah:

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault ON TableName(FormID) WHERE isDefault = 1
Salin selepas log masuk

...kami memastikan bahawa hanya satu rekod dengan bendera bit "isDefault" yang ditetapkan kepada 1 boleh hadir untuk mana-mana FormID.

Struktur jadual asas diwakili sebagai:

CREATE TABLE TableName(FormID INT NOT NULL, isDefault BIT NOT NULL)
Salin selepas log masuk

Menguatkuasakan Kekangan

Kekangan ini menguatkuasakan bahawa sebarang percubaan untuk memasukkan berbilang rekod dengan FormID dan "isDefault" yang sama ditetapkan kepada 1 akan mencetuskan ralat, memetik kehadiran nilai kunci pendua dalam indeks unik. Sebagai contoh, jika berbilang baris disisipkan dengan padanan FormID dan bendera "isDefault" ditetapkan kepada 1, mesej ralat akan dihasilkan:

Tidak boleh memasukkan baris kunci pendua dalam objek 'dbo.TableName' dengan indeks unik 'IX_TableName_FormID_isDefault '. Nilai kunci pendua ialah (1).

Dengan menggunakan teknik ini, pentadbir pangkalan data boleh mengekalkan integriti data mereka dengan berkesan dan memastikan bahawa hanya satu rekod ditetapkan sebagai rekod lalai untuk mana-mana set baris tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Hanya Satu Rekod Lalai Wujud bagi setiap Pengecam Unik dalam Pelayan SQL?. 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