Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi la clé primaire ne peut pas contenir de valeurs nulles ?

Une colonne PRIMARY KEY est équivalente à UNIQUE et NOT NULL et est une colonne indexée par défaut.
Elle doit être UNIQUE car une clé primaire identifie les lignes d'une table, donc 2 lignes différentes ne doivent pas avoir la même clé.
De plus, une clé primaire peut être utilisée comme FOREIGN KEY dans d'autres tables et c'est pourquoi elle ne peut pas être NULL afin que l'autre table puisse trouver les lignes de la table référencée.

Par exemple :

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