Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menguatkuasakan Bendera Lalai Unik dalam Rekod Pangkalan Data?

Bagaimana untuk Menguatkuasakan Bendera Lalai Unik dalam Rekod Pangkalan Data?

Patricia Arquette
Lepaskan: 2024-12-30 01:31:09
asal
472 orang telah melayarinya

How to Enforce a Unique Default Flag in Database Records?

Menguatkuasakan Bendera Lalai Unik dalam Rekod Pangkalan Data

Dalam pengurusan pangkalan data, selalunya perlu memastikan bahawa hanya satu rekod dalam set data tertentu boleh ditandakan sebagai lalai. Sebagai contoh, sistem mungkin mempunyai koleksi rekod pelanggan di mana hanya seorang pelanggan ditetapkan sebagai lalai untuk tujuan pengebilan. Untuk menangani keperluan ini, kekangan pangkalan data boleh dilaksanakan.

Menggunakan Indeks Penapis Unik

Pada SQL Server 2008 atau lebih baru, penggunaan indeks yang ditapis unik menyediakan penyelesaian yang cekap :

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

Dalam senario ini, struktur jadual termasuk:

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

Indeks ini memastikan bahawa untuk mana-mana FormID tertentu, hanya satu rekod boleh menetapkan bendera isDefault kepada 1. Jika berbilang rekod dengan percubaan FormID yang sama untuk menetapkan bendera ini, ralat akan berlaku , seperti:

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

Dengan memanfaatkan indeks yang ditapis unik, anda boleh melaksanakan kekangan dengan berkesan untuk memastikan bahawa hanya satu rekod bagi setiap kriteria yang ditentukan (dalam kes ini, FormID) boleh ditetapkan sebagai lalai.

Atas ialah kandungan terperinci Bagaimana untuk Menguatkuasakan Bendera Lalai Unik dalam Rekod Pangkalan Data?. 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