Mysql
 sql >> Database >  >> RDS >> Mysql

Perché la chiave primaria non può contenere valori nulli?

Una colonna PRIMARY KEY è equivalente a UNIQUE e NOT NULL ed è una colonna indicizzata per impostazione predefinita.
Dovrebbe essere UNIQUE perché una chiave primaria identifica le righe in una tabella, quindi 2 righe diverse non dovrebbero avere la stessa chiave.
Inoltre una chiave primaria può essere utilizzata come CHIAVE FOREIGN in altre tabelle ed è per questo che non può essere NULL in modo che l'altra tabella possa trovare le righe nella tabella di riferimento.

Ad esempio:

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