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.