Problem:
Sie möchten einen Primärschlüssel für eine Tabelle in einer Datenbank erstellen.
Beispiel:
Wir wollen einen Primärschlüssel für eine Tabelle namens product
.
Lösung 1 (neue Tabelle):
CREATE TABLE product ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL, price DECIMAL(7,2) );
Diskussion:
Um eine neue Tabelle mit einer als Primärschlüssel definierten Spalte zu erstellen, können Sie das Schlüsselwort PRIMARY KEY
verwenden am Ende der Definition dieser Spalte. In unserem Beispiel erstellen wir die Tabelle product
mit einem CREATE TABLE
-Klausel, mit den Namen der Spalten und ihren jeweiligen Datentypen in Klammern. Wir wählen die Spalten-ID als Primärschlüssel dieser Tabelle, also bezeichnen wir PRIMARY KEY
am Ende der Definition dieser Spalte.
Denken Sie daran, dass Sie nur einen Primärschlüssel für eine bestimmte Tabelle erstellen können.
Lösung 2 (neue Tabelle):
CREATE TABLE product ( name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL), price DECIMAL(7,2), PRIMARY KEY(name, producer) );
Diskussion:
Eine andere Möglichkeit, einen Primärschlüssel während der Erstellung einer neuen Tabelle zu definieren, ist mit einem PRIMARY KEY
-Klausel am Ende der Spaltendefinitionen. In diesem Fall bezeichnen wir eine oder mehrere Spalten als Argument für den PRIMARY KEY
Klausel; diese Spalten werden zum Primärschlüssel für die Tabelle.
Beachten Sie, dass dieser Ansatz Primärschlüssel ermöglicht, die mit mehreren Spalten erstellt wurden. In diesem Beispiel der Primärschlüssel für die Tabelle product
besteht aus zwei Spalten:name
und producer
.
Lösung 3 (vorhandene Tabelle):
ALTER TABLE product ADD PRIMARY KEY (id);
Diskussion:
Es ist auch möglich, einen Primärschlüssel für eine bestehende Tabelle zu definieren, die noch keinen Primärschlüssel hat.
Hier wird die Tabelle mit einem ALTER TABLE
verändert Klausel. Die Tabelle (in unserem Beispiel product
) ist nach dem Schlüsselwort ALTER TABLE
benannt , dann ADD PRIMARY KEY
Klausel folgt mit dem Namen der Spalte, die als Primärschlüssel verwendet werden soll. Beachten Sie, dass die Tabelle bereits existieren muss, bevor dieser Befehl ausgeführt wird, und dass die Tabelle noch keinen Primärschlüssel haben darf.
Lösung 4 (vorhandene Tabelle, Primärschlüsseleinschränkung):
ALTER TABLE product ADD CONSTRAINT PK_product_id PRIMARY KEY (id);
Diskussion:
Verwenden Sie eine Abfrage wie diese, wenn Sie eine Primärschlüsseleinschränkung für eine vorhandene Tabelle benennen möchten. Hier die Primärschlüsseleinschränkung PK_product_id
, wird aus der Spalte id
generiert . Wenn Sie den Constraint-Namen nicht angeben, generiert die Datenbank einen Standard-Constraint-Namen (der Name variiert je nach Datenbank).