Eindeutiges Standardflag in Datenbankdatensätzen erzwingen
Bei der Datenbankverwaltung muss häufig sichergestellt werden, dass nur ein Datensatz innerhalb eines bestimmten Datensatzes möglich ist als Standard markiert werden. Beispielsweise kann ein System über eine Sammlung von Kundendatensätzen verfügen, bei denen für Abrechnungszwecke nur ein Kunde als Standardkunde festgelegt ist. Um dieser Anforderung gerecht zu werden, können Datenbankeinschränkungen implementiert werden.
Verwendung eindeutiger gefilterter Indizes
Auf SQL Server 2008 oder höher bietet die Verwendung eindeutiger gefilterter Indizes eine effiziente Lösung :
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault ON TableName(FormID) WHERE isDefault = 1
In diesem Szenario die Tabellenstruktur beinhaltet:
CREATE TABLE TableName( FormID INT NOT NULL, isDefault BIT NOT NULL )
Dieser Index stellt sicher, dass für jede gegebene FormID nur ein Datensatz das isDefault-Flag auf 1 setzen kann. Wenn mehrere Datensätze mit derselben FormID versuchen, dieses Flag zu setzen, tritt ein Fehler auf , wie zum Beispiel:
Eine doppelte Schlüsselzeile kann nicht in das Objekt „dbo.TableName“ mit dem eindeutigen Index „IX_TableName_FormID_isDefault“ eingefügt werden. Der doppelte Schlüsselwert ist (1).
Durch die Nutzung eindeutig gefilterter Indizes können Sie Einschränkungen effektiv implementieren, um sicherzustellen, dass nur ein Datensatz pro angegebenem Kriterium (in diesem Fall FormID) als Standard festgelegt werden kann.
Das obige ist der detaillierte Inhalt vonWie erzwinge ich ein eindeutiges Standardflag in Datenbankdatensätzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!