Problem:
Sie möchten eine bestimmte Spalte in einer bestimmten Tabelle in einer Datenbank eindeutig machen.
Beispiel:
Wir möchten die Spalte name erstellen eindeutig in der Tabelle product . Die folgende Abfrage stellt eine Möglichkeit dar, dies zu tun.
Lösung 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Diskussion:
In diesem Beispiel wird eine bestimmte Spalte (die Spalte name ) wurde eindeutig gemacht, indem die Klausel UNIQUE am Ende der Definitionsspalte hinzugefügt wurde (name VARCHAR(100) UNIQUE ). Diese neue Tabelle (in unserem Beispiel:product ) enthält die Spalte (in unserem Beispiel:name ), die eindeutige Werte in Zeilen speichert.
Lösung 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Diskussion:
In diesem Beispiel die Tabelle product ist bereits vorhanden. Wir möchten diese Tabelle ändern und der Spalte name eine eindeutige Einschränkung hinzufügen . Dies ist mit ALTER TABLE möglich Klausel. Zuerst schreiben wir ALTER TABLE, dann listen wir den Namen der Tabelle auf (in unserem Beispiel:product ), und als nächstes fügen wir die Klausel ADD CONSTRAINT hinzu mit dem Namen der Unique Constraint (in unserem Beispiel:UQ_product_name ). Darauf folgt das Schlüsselwort UNIQUE mit Spalte/Spalten (in unserem Beispiel Spalte:name). ) in Klammern.
Sie können auch eine eindeutige Einschränkung für mehrere Spalten erstellen. So geht's:
Lösung 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Diskussion:
In diesem Beispiel wird das Tabellenprodukt mithilfe von ALTER TABLE geändert -Klausel und die Klausel ADD CONSTRAINT mit dem Namen der Unique Constraint (in unserem Beispiel:UQ_product_name_producer ) gefolgt von UNIQUE Stichwort mit der Liste der Spalten (in unserem Beispiel gibt es zwei Spalten:name und producer ) in Klammern.