
triggers en Postgres
Publicado por Carmen (1 intervención) el 22/10/2022 07:35:01
Buenos días.
Agradezco inmensamente a quien pueda aclararme la siguiente duda.
En postgres es estrictamente necesario que un trigger utilice una function o procedure?
Y también, cuando tengo un trigger que ejecuta una function, puedo establecer dentro del trigger la "funcionalidad"? es decir; si necesito, por ejemplo, ejecutar un insert into a x tabla cuando el trigger se ejecute, podría establecer ese insert into dentro del trigger y no de la function?
Mil gracias a la persona que me pueda ayudar o indicarme donde puedo encontrar información seria y oficial acerca de esto. hasta ahora he visto que siempre se crean los tigger de la mano de una function y yo misma hice uno y funciona perfectamente, pero tengo un profesor indicandome que ese trigger esta mal por la funcion y no apruebo la actividad hasta que corrija mi error. De hecho me remitio a la documentacion oficial de Postgres pero si no me equivoco alli explica lo mismo, que un trigger executa siempre una function:
( https://www.postgresql.org/docs/current/sql-createtrigger.html )
CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
ON table_name
[ FROM referenced_table_name ]
[ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
[ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN ( condition ) ]
EXECUTE { FUNCTION | PROCEDURE } function_name ( arguments )
Agradezco inmensamente a quien pueda aclararme la siguiente duda.
En postgres es estrictamente necesario que un trigger utilice una function o procedure?
Y también, cuando tengo un trigger que ejecuta una function, puedo establecer dentro del trigger la "funcionalidad"? es decir; si necesito, por ejemplo, ejecutar un insert into a x tabla cuando el trigger se ejecute, podría establecer ese insert into dentro del trigger y no de la function?
Mil gracias a la persona que me pueda ayudar o indicarme donde puedo encontrar información seria y oficial acerca de esto. hasta ahora he visto que siempre se crean los tigger de la mano de una function y yo misma hice uno y funciona perfectamente, pero tengo un profesor indicandome que ese trigger esta mal por la funcion y no apruebo la actividad hasta que corrija mi error. De hecho me remitio a la documentacion oficial de Postgres pero si no me equivoco alli explica lo mismo, que un trigger executa siempre una function:
( https://www.postgresql.org/docs/current/sql-createtrigger.html )
CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
ON table_name
[ FROM referenced_table_name ]
[ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
[ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN ( condition ) ]
EXECUTE { FUNCTION | PROCEDURE } function_name ( arguments )
Valora esta pregunta


0