Eine PRIMARY KEY-Spalte entspricht UNIQUE und NOT NULL und ist standardmäßig eine indizierte Spalte.
Sie sollte UNIQUE sein, da ein Primärschlüssel Zeilen in einer Tabelle identifiziert, sodass zwei verschiedene Zeilen nicht denselben Schlüssel haben sollten.
Außerdem kann ein Primärschlüssel in anderen Tabellen als FOREIGN KEY verwendet werden und kann deshalb nicht NULL sein, damit die andere Tabelle die Zeilen in der referenzierten Tabelle finden kann.
Zum Beispiel:
CREATE person{
id INT PRIMARY KEY, -- equals UNIQUE NOT NULL
name VARCHAR(20)
};
CREATE family{
id INT PRIMARY KEY, -- equals UNIQUE NOT NULL
menber_id INT FOREIGN KEY REFERENCE person(id)
};