Database
 sql >> Datenbank >  >> RDS >> Database

Wie macht man eine Spalte in SQL eindeutig?

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.