FOREIGN KEYS
po prostu upewnij się, że Twoje dane są spójne.
Nie poprawiają zapytań pod kątem wydajności, po prostu powodują, że niektóre błędne zapytania kończą się niepowodzeniem.
Jeśli masz taki związek:
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))
, nie możesz usunąć department
jeśli ma jakiegoś employee
s.
Jeśli podasz ON DELETE CASCADE
do FOREIGN KEY
definicji, wiersze odniesienia zostaną automatycznie usunięte wraz z wierszami odniesienia.
Jako ograniczenie FOREIGN KEY
faktycznie spowalnia nieco zapytania.
Podczas usuwania z tabeli odniesienia lub wstawiania do tabeli odniesienia należy wykonać dodatkowe sprawdzenie.