Die Einzigartigkeit der mehreren Spalten
Lösung
Verwendung eindeutiger Einschränkungen oder Index:Nach dem Löschen von wiederholten Datensätzen:
oderVerwenden Sie anstelle von Auslöser:
<code class="language-sql">ALTER TABLE dbo.yourtablename ADD CONSTRAINT uq_yourtablename UNIQUE(column1, column2);</code>
Um Anomalien zu verhindern und eine eindeutige Prüfung in der Datenbank zu bearbeiten:
<code class="language-sql">CREATE UNIQUE INDEX uq_yourtablename ON dbo.yourtablename(column1, column2);</code>
Beispiel Verwenden wir den in dem Problem angegebenen Feldnamen:
Der letzte Einfügungsversuch gibt Fehler zurück, um die Einzigartigkeit zu gewährleisten.
<code class="language-sql">CREATE TRIGGER dbo.BlockDuplicatesYourTable ON dbo.YourTable INSTEAD OF INSERT AS BEGIN SET NOCOUNT ON; IF NOT EXISTS (SELECT 1 FROM inserted AS i INNER JOIN dbo.YourTable AS t ON i.column1 = t.column1 AND i.column2 = t.column2) BEGIN INSERT dbo.YourTable(column1, column2, ...) SELECT column1, column2, ... FROM inserted; END ELSE BEGIN PRINT '未执行任何操作。'; -- 将错误信息改为更友好的提示 END END GO</code>
Das obige ist der detaillierte Inhalt vonWie kann ich in einer SQL -Tabelle die Einzigartigkeit über mehrere Spalten durchsetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!