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.