FOREIGN KEYS
Se bara till att dina data är konsekventa.
De förbättrar inte frågor i känsla av effektivitet, de gör bara att vissa felaktiga frågor misslyckas.
Om du har ett förhållande som detta:
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))
, då kan du inte ta bort en department
om den har någon employee
s.
Om du anger ON DELETE CASCADE
till FOREIGN KEY
definition, kommer referensraderna att raderas automatiskt tillsammans med de refererade.
Som en begränsning, FOREIGN KEY
saktar faktiskt ner frågorna lite.
Extra kontroll måste utföras när du tar bort från en refererad tabell eller infogar i en referenstabell.