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

Dans quel ordre les contraintes ON DELETE CASCADE sont-elles traitées ?

Dans le cas le plus simple, que se passe-t-il si un enregistrement est supprimé de l'enfant et qu'il a un oncle de référence ? Ce n'est pas spécifié, donc les contraintes échouent pour cela de toute façon.

Si la suppression d'un enfant ne supprime pas ses oncles, que se passe-t-il à la place ? Uncle.childid ne peut pas être nul.

Ce que vous voulez, c'est l'une de ces trois choses :

  1. Oncle.childid peut être nul, et vous voulez ON DELETE SET NULL pour childid.
  2. Oncle.childid ne peut pas être nul, et vous voulez ON DELETE CASCADE pour childid.
  3. Childid n'appartient pas à Uncle, et vous voulez une relation ChildsUncle avec des contraintes de clé étrangère ON DELETE CASCADE à Child et Uncle. Uncleid serait une clé candidate pour cette relation (c'est-à-dire qu'elle devrait être unique).