Mysql
 sql >> Base de données >  >> RDS >> Mysql

Bases des clés étrangères dans MySQL ?

FOREIGN KEYS assurez-vous simplement que vos données sont cohérentes.

Ils n'améliorent pas les requêtes en termes d'efficacité, ils font simplement échouer certaines requêtes erronées.

Si vous avez une relation comme celle-ci :

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))

, vous ne pouvez pas supprimer un department s'il a un employee s.

Si vous fournissez ON DELETE CASCADE à la FOREIGN KEY définition, les lignes de référence seront automatiquement supprimées avec celles référencées.

En tant que contrainte, FOREIGN KEY ralentit un peu les requêtes.

Une vérification supplémentaire doit être effectuée lors de la suppression d'une table référencée ou de l'insertion dans une table de référence.