FOREIGN KEYS
просто се уверете, че данните ви са последователни.
Те не подобряват заявките в смисъл на ефективност, а просто правят някои грешни заявки неуспешни.
Ако имате връзка като тази:
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))
, тогава не можете да изтриете department
ако има някакъв employee
's.
Ако предоставите ON DELETE CASCADE
към FOREIGN KEY
дефиниция, референтните редове ще бъдат изтрити автоматично заедно с референтните.
Като ограничение, FOREIGN KEY
всъщност забавя малко заявките.
Необходимо е да се извърши допълнителна проверка при изтриване от референтна таблица или вмъкване в референтна.