Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que a chave primária não pode conter valores nulos?


Uma coluna PRIMARY KEY é equivalente a UNIQUE e NOT NULL e é uma coluna indexada por padrão.
Deve ser UNIQUE porque uma chave primária identifica linhas em uma tabela, portanto, 2 linhas diferentes não devem ter a mesma chave.
Além disso, uma chave primária pode ser usada como FOREIGN KEY em outras tabelas e é por isso que não pode ser NULL para que a outra tabela possa encontrar as linhas na tabela referenciada.

Por exemplo:
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)   
};