Kombinovaný primární klíč v MariaDB/MySQL: Víte, že více primárních klíčů na tabulce vám nezajistí unikátnost každého sloupce?
Možná jste slyšeli, že primární klíč se často nastavuje na sloupec pojmenovaný jako „id“. Často ve spojení s datovým typem „int“ a „Auto Increment“, který zajistí automatické zvyšování hodnoty nového záznamu ve sloupci o +1.
A možná jste si mysleli, že když nastavíte ještě druhý primární klíč třeba nad sloupec „email“, tak že vám zajistí unikátnost také e-mailové adresy. Ale tak to není.
Pokud na jedné tabulce MariaDB/MySQL nastavíte více primárních klíčů, vznikne tzv. kombinovaný primární klíč. Bude se chovat stejně jako unikátní složený index. Kombinovaný primární klíč nad sloupci „actor_id“ a „actor_email“ totiž pouze zajišťuje, že kombinace těchto dvou sloupců musí být jedinečná, ale každý jednotlivý sloupec nemusí být sám o sobě jedinečný.
Takže jestli potřebujete unikátní sloupec „actor_email“, přidejte nad tento sloupec unikátní index (UNIQUE).