sql - constraint - ¿CASCADE Delete se ejecuta como transacción?
on delete restrict (3)
Quiero realizar la eliminación en cascada para algunas tablas en mi base de datos, pero estoy interesado en lo que sucede en caso de que haya un error al eliminar algo. ¿Todo se revertirá?
Las eliminaciones en cascada son atómicas, serían de poca utilidad sin esa propiedad. Está en la documentación.
Vale la pena señalar que cualquier evento en cascada debe ser atómico (es decir, con una transacción). Pero, como señala Joel Coehoorn, revise la documentación de su base de datos.
En general¹, sí, las eliminaciones en cascada se realizan en la misma transacción (o subtransacción) que su eliminación original. Sin embargo, debería leer la documentación de su servidor SQL.
¹ La excepción es si está utilizando una base de datos que no admite transacciones, como MySQL con tablas MyISAM.