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 :
- Oncle.childid peut être nul, et vous voulez ON DELETE SET NULL pour childid.
- Oncle.childid ne peut pas être nul, et vous voulez ON DELETE CASCADE pour childid.
- 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).