Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Em que ordem as restrições ON DELETE CASCADE são processadas?


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:
  1. Uncle.childid pode ser nulo e você deseja ON DELETE SET NULL para childid.
  2. Uncle.childid não pode ser nulo e você deseja ON DELETE CASCADE para childid.
  3. 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).