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á?¿Se ejecuta CASCADE Delete como transacción?
Respuesta
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.
Las eliminaciones en cascada son realmente atómicas, pero serían de poca utilidad sin esa propiedad. Está en la documentación.
+1 para "serían de poco uso sin esa propiedad" :-) Muy cierto. –
Vale la pena señalar que cualquier evento de cascada debe ser atómico (es decir, con en una transacción). Pero, como señala Joel Coehoorn, revise la documentación de su base de datos.
En realidad, no es Joel Coehoorn quien lo señala. Si no está seguro del autor, es mejor que utilice la "respuesta" que enlaza con su enlace permanente. – tzot
- 1. Dilema: Cascade delete or Join delete
- 2. Hibernate Delete Cascade
- 3. Oracle cascade delete
- 4. CASCADE DELETE una sola vez
- 5. Entity Framework - Cascade Delete no se establece en Entity Model
- 6. ¿Cómo hacer que ON DELETE CASCADE funcione en sqlite 3.7.4?
- 7. ¿Cómo edito una tabla para habilitar CASCADE DELETE?
- 8. Cómo usar delete cascade en MySQL MyISAM storage engine?
- 9. Django Cascade Delete en las teclas externas inversas
- 10. Cascade Delete, misma tabla, Entity Framework 4 Code First
- 11. mapeo nhibernate: una colección con cascade = "all-delete-huérfano" ya no se hace referencia
- 12. Ejecuta dos consultas diferentes en una transacción
- 13. C# Comprobar si se ejecuta como administrador
- 14. PostgreSQL 'Deferrable Delete' aún golpea la restricción en Delete
- 15. Cuándo utilizar "ON UPDATE CASCADE"
- 16. Nhibernate - mapeo uno a uno con Cascade all-delete-huérfano, sin eliminar el huérfano
- 17. Actualizando una restricción de clave externa con ON DELETE CASCADE no actualizando?
- 18. MS SQL "ON DELETE CASCADE" ¿teclas externas múltiples que apuntan a la misma tabla?
- 19. NHibernate, "On Delete Cascade", elimina en cascada las filas en tablas relacionadas?
- 20. Hibernate caché de segundo nivel y ON DELETE CASCADE en el esquema de base de datos
- 21. Mapeo de NHibernate sin agregar la opción ON DELETE CASCADE a la referencia de clave externa
- 22. ¿Cómo se asegura primero que Cascade Delete esté habilitado en una relación de tabla en EF Code?
- 23. La transacción SQLite no funciona como se esperaba
- 24. ¿Por qué el siguiente SQL Server inserta interbloqueo cuando se ejecuta dentro de una transacción?
- 25. NHibernate Cascade = guardar-actualización "
- 26. SQL Batched Delete
- 27. Doctrine 2 ManyToMany cascade
- 28. VEZ de disparadores y Cascade caminos
- 29. la aplicación se ejecuta como depuración, pero se bloquea como la versión
- 30. ¿La fuente de C# se ejecuta como un script?
En general? cuando no están en una transacción? –
Cuando la base de datos no admite transascciones, por ejemplo. Consulte MySQL con tablas MyISAM ... –
@ Cd-MaN MyISAM tampoco es compatible con claves externas, por lo que tendría que buscar mucho para un caso en el que esta excepción entra en juego. – Brilliand