PRIMARY KEY
Constraints & Struktur
Der PRIMARY KEY (Primärschlüssel) identifiziert jede Zeile einer Tabelle eindeutig. Er ist die Kombination aus zwei Regeln: Die Werte müssen eindeutig (UNIQUE) und nicht null (NOT NULL) sein. In unserer Beispieltabelle ist KundenID der Primärschlüssel.
Syntax
Inline direkt an der Spalte:
CREATE TABLE Kunden ( KundenID INT PRIMARY KEY, Name VARCHAR(100) NOT NULL, Stadt VARCHAR(50) );
Oder als benannter Constraint:
CREATE TABLE Kunden ( KundenID INT, Name VARCHAR(100), CONSTRAINT pk_kunden PRIMARY KEY (KundenID) );
Nur ein Primärschlüssel pro Tabelle
Eine Tabelle kann genau einen Primärschlüssel haben – im Gegensatz zu UNIQUE, das mehrfach vorkommen darf. Der Primärschlüssel ist sozusagen der „Hauptausweis“ jeder Zeile.
Zusammengesetzter Primärschlüssel
Der Schlüssel kann aus mehreren Spalten bestehen. In einer Zuordnungstabelle (z. B. welcher Kunde welches Produkt bestellt hat) bietet sich das an:
CREATE TABLE Bestellungen ( KundenID INT, ProduktID INT, Menge INT, PRIMARY KEY (KundenID, ProduktID) );
Hier ist die Kombination aus KundenID und ProduktID eindeutig.
Welche Aussage über den PRIMARY KEY ist richtig?
Stolperfalle
Der Primärschlüssel sollte stabil sein und sich nie ändern. Verwende daher künstliche IDs (z. B. eine automatisch hochzählende AUTO_INCREMENT-Spalte) statt fachlicher Werte wie E-Mail-Adressen, die sich ändern könnten. Andere Tabellen verweisen über FOREIGN KEYs auf diesen Schlüssel.