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

Základy cizích klíčů v MySQL?

FOREIGN KEYS jen se ujistěte, že jsou vaše data konzistentní.

Nezlepšují dotazy ve smyslu efektivity, pouze způsobují, že některé chybné dotazy selžou.

Pokud máte takový vztah:

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

, pak nemůžete odstranit department pokud má nějakého employee 's.

Pokud zadáte ON DELETE CASCADE na FOREIGN KEY definice, budou referenční řádky automaticky odstraněny spolu s odkazovanými.

Jako omezení FOREIGN KEY ve skutečnosti trochu zpomaluje dotazy.

Při mazání z odkazované tabulky nebo vkládání do odkazované tabulky je třeba provést zvláštní kontrolu.



  1. Jak mohu vyřešit nekompatibilitu s sql_mode=only_full_group_by v laravel eloquent?

  2. jak duplikovat mé výsledky SQL?

  3. 6 způsobů, jak vybrat duplicitní řádky v Oracle

  4. Nejlepší postup pro implementaci zabezpečené databáze pro zařízení Android