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

MySQL sur la cascade de suppression. Exemple d'essai

Réponse D. est correct, si et seulement si le moteur de stockage prend en charge et applique réellement les contraintes de clé étrangère.

Si les tables sont créées avec Engine=MyISAM , alors ni b. ou d. est correct.

Si les tables sont créées avec Engine=InnoDB , puis d. est correct.

REMARQUE :

Ceci est vrai pour InnoDB si et seulement si FOREIGN_KEY_CHECKS = 1; si FOREIGN_KEY_CHECKS = 0 , puis un DELETE de la table parent (foo) ne sera pas supprimer les lignes de la table enfant (foo2) qui font référence à une ligne supprimée de la table parent.

Vérifiez cela avec la sortie de SHOW VARIABLES LIKE 'foreign_key_checks' (1=ON, 0=OFF)(La valeur par défaut normale est que ceci soit activé.)

La sortie de SHOW CREATE TABLE foo montrera quel moteur la table utilise.

La sortie de SHOW VARIABLES LIKE 'storage_engine' affichera le moteur par défaut utilisé lorsqu'une table est créée et que le moteur n'est pas spécifié.