Heim > Datenbank > MySQL-Tutorial > Wie kann ich in einer SQL -Tabelle die Einzigartigkeit über mehrere Spalten durchsetzen?

Wie kann ich in einer SQL -Tabelle die Einzigartigkeit über mehrere Spalten durchsetzen?

Barbara Streisand
Freigeben: 2025-01-24 23:47:09
Original
448 Leute haben es durchsucht

How to Enforce Uniqueness Across Multiple Columns in a SQL Table?

Die Einzigartigkeit der mehreren Spalten

Frage Anweisung

Es gibt wiederholte Datensätze in Ihrer Tabelle.

Lösung

Verwendung eindeutiger Einschränkungen oder Index:

Nach dem Löschen von wiederholten Datensätzen:

oder

Verwenden Sie anstelle von Auslöser:
<code class="language-sql">ALTER TABLE dbo.yourtablename ADD CONSTRAINT uq_yourtablename UNIQUE(column1, column2);</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Diese Revision Output hält das Originalbild und verwendet die technische Genauigkeit des Originaltextes

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage