Maintenir un enregistrement par défaut unique : une application de contrainte
Dans les systèmes de gestion de bases de données, garantir l'intégrité et la cohérence des données est crucial. Un tel scénario nécessite de limiter le nombre d'enregistrements marqués comme « par défaut » à un seul par ensemble de lignes identifiées par un identifiant unique. Comment y parvenir ?
Solution d'index filtré unique
Pour les versions SQL Server 2008 et supérieures, un index filtré unique offre une solution élégante. En créant un index filtré unique, comme indiqué ci-dessous :
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault ON TableName(FormID) WHERE isDefault = 1
...nous garantissons qu'un seul enregistrement avec son indicateur de bit "isDefault" défini sur 1 peut être présent pour un FormID donné.
La structure de la table sous-jacente est représentée comme :
CREATE TABLE TableName(FormID INT NOT NULL, isDefault BIT NOT NULL)
Application de la Contrainte
Cette contrainte impose que toute tentative d'insertion de plusieurs enregistrements avec le même FormID et "isDefault" défini sur 1 déclenchera une erreur, citant la présence de valeurs de clé en double dans l'index unique. Par exemple, si plusieurs lignes sont insérées avec des FormID correspondants et des indicateurs "isDefault" définis sur 1, un message d'erreur sera généré :
Impossible d'insérer une ligne de clé en double dans l'objet 'dbo.TableName' avec un index unique 'IX_TableName_FormID_isDefault '. La valeur de clé en double est (1).
En employant cette technique, les administrateurs de bases de données peuvent efficacement maintenir l'intégrité de leurs données et garantir qu'un seul enregistrement est désigné comme enregistrement par défaut pour un ensemble de lignes donné.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!