Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum darf der Primärschlüssel keine Nullwerte enthalten?

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)   
};