sql >> Databáze >  >> RDS >> Mysql

Proč primární klíč nemůže obsahovat hodnoty null?

Sloupec PRIMARY KEY je ekvivalentní UNIQUE a NOT NULL a je ve výchozím nastavení indexovaný.
Měl by být UNIQUE, protože primární klíč identifikuje řádky v tabulce, takže 2 různé řádky by neměly mít stejný klíč.
Kromě toho může být primární klíč použit jako CIZÍ KLÍČ v jiných tabulkách, a proto nemůže být NULL, aby druhá tabulka mohla dokončit řádky v odkazované tabulce.

Například:

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


  1. Pomalé řazení dotazů podle sloupce ve spojené tabulce

  2. Jak uložit výsledky dotazu MySQL do jiné tabulky?

  3. Upgrade MariaDB 10.0 na 10.3.9 na Ubuntu 16.04

  4. Moje webhostingová společnost říká, že s kódem PHP není něco v pořádku