Mysql
 sql >> Database >  >> RDS >> Mysql

In quale ordine vengono elaborati i vincoli ON DELETE CASCADE?

Nel caso più semplice, cosa succede se un record viene eliminato da Child e ha uno zio di riferimento? Non è specificato, quindi i vincoli falliscono comunque.

Se l'eliminazione di un bambino non elimina i suoi zii, cosa succede invece? Uncle.childid non può essere nullo.

Quello che vuoi è una di queste tre cose:

  1. Uncle.childid può essere null e vuoi ON DELETE SET NULL per childid.
  2. Uncle.childid non può essere null e vuoi ON DELETE CASCADE per childid.
  3. Childid non appartiene a Uncle e desideri una relazione ChildsUncle con vincoli di chiave esterna ON DELETE CASCADE sia per Child che per Uncle. Uncleid sarebbe una chiave candidata per quella relazione (cioè dovrebbe essere univoca).