No caso mais simples, o que acontece se um registro for excluído de Child e tiver um Uncle de referência? Isso não é especificado, então as restrições falham para isso de qualquer maneira.
Se a exclusão de uma criança não exclui seus tios, o que acontece? Uncle.childid não pode ser nulo.
O que você quer é uma dessas três coisas:
- Uncle.childid pode ser nulo e você deseja ON DELETE SET NULL para childid.
- Uncle.childid não pode ser nulo e você deseja ON DELETE CASCADE para childid.
- Childid não pertence ao Uncle, e você quer uma relação ChildsUncle com restrições de chave estrangeira ON DELETE CASCADE para Child e Uncle. Uncleid seria uma chave candidata para essa relação (ou seja, deveria ser única).