mysql - foreign - on delete restrict
ActivaciĆ³n de llamadas en cascada eliminando (3)
De http://dev.mysql.com/doc/refman/5.6/en/innodb-restrictions.html
Las acciones de clave externa en cascada no activan los activadores
En otras palabras, no puede usar el disparador con la eliminación en cascada.
Tengo tabla "A" en MySQL. Tiene algunas referencias con eliminación en cascada a otras tablas ("B", "C", "D" ...). Necesito usar un disparador cuando algo se borra de "A". Este disparador funciona cuando borro registros de "A" directamente. Pero no funciona con la eliminación en cascada. ¿Existe alguna versión de MySQL donde mi activador funcione con la eliminación en cascada? O, tal vez, hay otra manera de llamar
Para resumir las respuestas de @Niel de Wet y @Browny Lin:
- Lamentablemente, las eliminaciones en cascada no activan los activadores en MySQL.
- Una solución es no usar eliminaciones en cascada, sino implementar la eliminación automática a través de otro disparador.
Permítanme compartir cómo he estado "arreglando" este problema desde el primer día que descubrí que existía. Copio el disparador de la tabla en cascada en la primera tabla que se elimina directamente. Simplemente funciona.
Muchas veces es una cuestión de copiar / pegar, y ocasionalmente requiere una reescritura extensa del código.
La mejor parte es que cuando Oracle finalmente soluciona este error , solo tiene que eliminar el código de activación de dicha tabla. Voila!