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

Proč musím používat cizí klíč, když mohu použít WHERE?

Pro dotaz to není vyloženě potřeba, to je pravda. Existuje z několika důvodů:

  1. Jako omezení na stole, které vám zabrání vložit něco, co na nic neukazuje;
  2. Jako vodítko pro optimalizátor; a
  3. Z historických důvodů bylo více potřeba.

(1) je pravděpodobně nejdůležitější z těchto tří. Toto se nazývá referenční integrita . To znamená, že pokud je v cizím klíči nějaká hodnota, bude v nadřazené tabulce odpovídající záznam s touto hodnotou jako primárním klíčem.

Jak již bylo řečeno, ne všechny databáze podporují referenční integritu (např. tabulky MySQL/MyISAM) a ty, které ji nutně nevynucují (z důvodů výkonu).



  1. Jak aktualizovat kontingenční tabulku pomocí Eloquent v laravel 5

  2. Chyba konektoru MySQL Hodnota časového pásma serveru Středoevropský čas

  3. Při hledání rychlého místního úložiště

  4. Jak odstranit úvodní a koncové mezery v MySQL