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
...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)
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!