Oracle y Triggers
Duda,
Es saludable el uso y abuso de triggers para gatillar una cadenas de trasacciones sobre sucesivas tablas?.
Situación.
Una aplicacion realiza operaciones DML sobre alguna table que tiene varios triggers asociados y estos gatillan operaciones sobre otras tablas que, a su vez, tambien disponen de triigers
Consulta: En el escenario anterio,r al momento de hacer una dml, digamos un insert, por el cual se gatilla la cadena de triggers antes mencionados. En qué monento la aplicaion sigue su curso.
1.- Al insertar el registro sigue inmediatamanet sin esperar en retorno de la cadena d trigger, por lo que la aplicaion no queda "colgada" hasta entonces
o
2.- La aplicacion espera el retorno de la cadena produciéndose una espera en la aplicacio.
Y por último:
Favor algun expeerto que emita su opinión respecto del uso y abuso de los triggers en ORACLE.
Gracias
Es saludable el uso y abuso de triggers para gatillar una cadenas de trasacciones sobre sucesivas tablas?.
Situación.
Una aplicacion realiza operaciones DML sobre alguna table que tiene varios triggers asociados y estos gatillan operaciones sobre otras tablas que, a su vez, tambien disponen de triigers
Consulta: En el escenario anterio,r al momento de hacer una dml, digamos un insert, por el cual se gatilla la cadena de triggers antes mencionados. En qué monento la aplicaion sigue su curso.
1.- Al insertar el registro sigue inmediatamanet sin esperar en retorno de la cadena d trigger, por lo que la aplicaion no queda "colgada" hasta entonces
o
2.- La aplicacion espera el retorno de la cadena produciéndose una espera en la aplicacio.
Y por último:
Favor algun expeerto que emita su opinión respecto del uso y abuso de los triggers en ORACLE.
Gracias
Hola:
no soy un experto pero es bastante bueno para no decir que es indispensable la utilizacion de trigger para tener una integridad en los datos que no puede ser realizada de otra forma ( Primary key, Foreign key, Check, Unique ), lo que si se recomienda es que estos trigger no disparen otros trigger y asi sucesivamente, se recomienda un trigger para un insert, o update o delete en una tabla.
Al utilizar un trigger de insert, la aplicacion no sigue su curso hasta que el trigger no sea efectuado, esto quiere decir que si tu usas un trigger de insert primero se ejecuta el trigger y despues que pase este el dato es insertado en la tabla.
Ojala que te haya ayudado con esto, buena suerte :)
no soy un experto pero es bastante bueno para no decir que es indispensable la utilizacion de trigger para tener una integridad en los datos que no puede ser realizada de otra forma ( Primary key, Foreign key, Check, Unique ), lo que si se recomienda es que estos trigger no disparen otros trigger y asi sucesivamente, se recomienda un trigger para un insert, o update o delete en una tabla.
Al utilizar un trigger de insert, la aplicacion no sigue su curso hasta que el trigger no sea efectuado, esto quiere decir que si tu usas un trigger de insert primero se ejecuta el trigger y despues que pase este el dato es insertado en la tabla.
Ojala que te haya ayudado con esto, buena suerte :)
Gracias por tu ayuda.
Efectivamente, me falto indicar que el uso de los triggers es indispensable para forzar la integridad de datos, eso está fuera de discución A donde yo iva era a que existen, en mi empresa, sistemas que están basados en triggers, rompiendo la regla 1 del modelo relacional de datos que es la separación de los datos de las aplicaciones que los usan. Existen tablas con mas de 10 triggers y estos, a su vez, hacen operaciones sobre otras tablas que disponene de mas triggers.
Efectivamente, me falto indicar que el uso de los triggers es indispensable para forzar la integridad de datos, eso está fuera de discución A donde yo iva era a que existen, en mi empresa, sistemas que están basados en triggers, rompiendo la regla 1 del modelo relacional de datos que es la separación de los datos de las aplicaciones que los usan. Existen tablas con mas de 10 triggers y estos, a su vez, hacen operaciones sobre otras tablas que disponene de mas triggers.
