Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Noções básicas de chaves estrangeiras no MySQL?


FOREIGN KEYS apenas certifique-se de que seus dados sejam consistentes.

Eles não melhoram as consultas no sentido de eficiência, apenas fazem com que algumas consultas erradas falhem.

Se você tem um relacionamento assim:
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))

, você não poderá excluir um department se tiver algum employee 's.

Se você fornecer ON DELETE CASCADE para a FOREIGN KEY definição, as linhas de referência serão excluídas automaticamente junto com as referenciadas.

Como restrição, FOREIGN KEY na verdade, diminui um pouco as consultas.

A verificação extra precisa ser realizada ao excluir de uma tabela referenciada ou inserir em uma tabela de referência.