PostgreSQL Primärschlüssel

In diesem PostgreSQL-Lernprogramm wird erläutert, wie Sie einen Primärschlüssel in PostgreSQL mit Syntax und Beispielen erstellen, löschen, deaktivieren und aktivieren.

Was ist ein Primärschlüssel in PostgreSQL?

In PostgreSQL ist ein Primärschlüssel ein einzelnes Feld oder eine Kombination von Feldern, die einen Datensatz eindeutig definieren. Keines der Felder, die Teil des Primärschlüssels sind, darf einen NULL-Wert enthalten. Eine Tabelle kann nur einen Primärschlüssel haben.

Hinweis

  • In PostgreSQL wird ein Primärschlüssel entweder mit einer CREATE TABLE-Anweisung oder einer ALTER TABLE-Anweisung erstellt.
  • Sie verwenden die ALTER TABLE-Anweisung in PostgreSQL, um einen Primärschlüssel hinzuzufügen oder zu löschen.

Primärschlüssel erstellen – Mit der Anweisung CREATE TABLE

Sie können einen Primärschlüssel in PostgreSQL mit der Anweisung CREATE TABLE erstellen.

Syntax

Die Syntax zum Erstellen eines Primärschlüssels mithilfe der Anweisung CREATE TABLE in PostgreSQL lautet:

CREATE TABLE Tabellenname
(
Spalte1 Datentyp [ NULL | NOT NULL ],
Spalte2 Datentyp [ NULL | NOT NULL ],

CONSTRAINT constraint_name
PRIMARY KEY (index_col1, index_col2, … index_col_n)

ODER

CREATE TABLE Tabellenname
(
Spalte1 Datentyp CONSTRAINT constraint_name PRIMARY KEY,
Spalte2 Datentyp [ NULL | NOT NULL ],
Tabellenname
Der Name der Tabelle, die Sie erstellen möchten.
Spalte1, Spalte2
Die Spalten, die Sie in der Tabelle erstellen möchten. In der PostgreSQL-Anweisung CREATE TABLE finden Sie ausführliche Informationen zur CREATE TABLE-Syntax.
constraint_name
Der Name des Primärschlüssels.
index_col1, index_col2, … index_col_n
Die Spalten, aus denen der Primärschlüssel besteht.

Beispiel

Schauen wir uns ein Beispiel zum Erstellen eines Primärschlüssels mit der Anweisung CREATE TABLE in PostgreSQL an.

Sie können den Primärschlüssel auch in der Tabelle order_details mit der folgenden Syntax erstellen:

In diesen beiden Beispielen haben wir einen Primärschlüssel für die Tabelle order_details mit dem Namen order_details_pk erstellt. Es besteht nur aus einer Spalte – der order_detail_id-Spalte.

Wir könnten auch einen Primärschlüssel mit mehr als einem Feld erstellen, wie im folgenden Beispiel gezeigt:

In diesem Beispiel wird ein Primärschlüssel mit dem Namen order_details_pk erstellt, der aus einer Kombination der Spalten order_date und customer_id besteht. Daher muss jede Kombination aus order_date und customer_id in der order_details-Tabelle eindeutig sein.

Primärschlüssel erstellen – Mit der Anweisung ALTER TABLE

Sie können einen Primärschlüssel in PostgreSQL mit der Anweisung ALTER TABLE erstellen.

Syntax

Die Syntax zum Erstellen eines Primärschlüssels mithilfe der ALTER TABLE-Anweisung in PostgreSQL lautet:

ALTER TABLE Tabellenname
ADD CONSTRAINT [ constraint_name ]
PRIMARY KEY (index_col1, index_col2, … index_col_n)
Tabellenname
Der Name der zu ändernden Tabelle.
constraint_name
Der Name des Primärschlüssels.
index_col1, index_col2, … index_col_n
Die Spalten, aus denen der Primärschlüssel besteht.

Beispiel

Schauen wir uns ein Beispiel zum Erstellen eines Primärschlüssels mit der ALTER TABLE-Anweisung in PostgreSQL an.

In diesem Beispiel haben wir einen Primärschlüssel für die vorhandene Tabelle order_details mit dem Namen order_details_pk erstellt. Es besteht aus der Spalte order_detail_id.
Wir könnten auch einen Primärschlüssel mit mehr als einem Feld erstellen, wie im folgenden Beispiel gezeigt:

In diesem Beispiel haben wir einen Primärschlüssel namens order_details_pk erstellt, der aus einer Kombination der Spalten order_date und customer_id besteht.

Primärschlüssel löschen

Sie können einen Primärschlüssel in PostgreSQL mit der Anweisung ALTER TABLE löschen.

Syntax

Die Syntax zum Löschen eines Primärschlüssels in PostgreSQL lautet:

ALTER TABLE Tabellenname
DROP CONSTRAINT constraint_name;
Tabellenname
Der Name der zu ändernden Tabelle.
constraint_name
Der Name des Primärschlüssels, den Sie löschen möchten.

Beispiel

Schauen wir uns ein Beispiel an, wie ein Primärschlüssel mit der ALTER TABLE-Anweisung in PostgreSQL gelöscht wird.

In diesem Beispiel haben wir den Primärschlüssel in der Tabelle order_details abgelegt. Der Name des Primärschlüssels muss nicht angegeben werden, da nur einer in einer Tabelle vorhanden sein kann.