sql >> Base de Datos >  >> RDS >> Mysql

¿En qué orden se procesan las restricciones ON DELETE CASCADE?

En el caso más simple, ¿qué sucede si se elimina un registro de Child y tiene un tío de referencia? Eso no está especificado, por lo que las restricciones fallan de todos modos.

Si eliminar a un niño no elimina a sus tíos, ¿qué sucede en su lugar? Uncle.childid no puede ser nulo.

Lo que quieres es una de estas tres cosas:

  1. Uncle.childid puede ser nulo y desea ON DELETE SET NULL para childid.
  2. Uncle.childid no puede ser nulo y desea ON DELETE CASCADE para childid.
  3. Childid no pertenece a Uncle, y desea una relación ChildsUncle con restricciones de clave externa ON DELETE CASCADE tanto para Child como para Uncle. Uncleid sería una clave candidata para esa relación (es decir, debería ser única).