RE: Triggers recursivos

From: "Hugo Gamarra" <hgamarra(at)hacienda(dot)gov(dot)py>
To: "'JP'" <mozstyle2002(at)gmx(dot)net>
Cc: "'PostgreSQL'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Triggers recursivos
Date: 2005-03-21 15:16:43
Message-ID: 002101c52e29$005d79b0$ef06000a@SSET.GOV.PY
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,
La verdad no lo he probado en postgresql, pero en oracle se puede
asignar valor a un campo en un trigger, solo en el before (si no me
equivoco), seria algo así
:new.campo := <valor>;

De esta forma te ahorras el update

Saludos cordiales,
Hugo Gamarra.

> -----Mensaje original-----
> De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-
> owner(at)postgresql(dot)org] En nombre de JP
> Enviado el: Lunes, 21 de Marzo de 2005 02:57
> Para: Pgsql-Es-Ayuda
> Asunto: [pgsql-es-ayuda] Triggers recursivos
>
> Hola,
>
> Me estoy cambiando de MS-SQL a PostgreSql y tengo un problemita en un
> trigger:
>
> Tengo un trigger TRG1 para una tabla TBL1 que se activa después
> (AFTER) de un Insert o un Update a nivel For Each ROW.
>
> La cosa es que dentro del Trigger TRG1, ejecuto un procedimiento
> almacenado (SP1) el que a su vez puede o no, realizar un UPDATE a un
> campo de la misma tabla TBL1. Esto al parecer genera que una vez
> completado el UPDATE dentro de este SP1, se gatille nuevamente el
> trigger TRG1 sin haber concluido el SP1.
>
> Esto me trae problemas ya que el trigger parece entrar en un Loop
> "finito" (que por alguna razón no es infinito). Esto hace que la
> ejecución completa del trigger se tarde varios segundos en concluir.
He
> probado quitando el UPDATE del SP1 y la ejecución del trigger (SP1
> incluido) es instantánea. En ambos casos (con o sin UPDATE dentro del
> SP1) el resultado es el que se espera para la TBL1.
>
> ¿Es posible evitar que se gatille el TRG1 para la tabla TBL1
cuando
> realizo el Update a la TBL1 dentro de mi SP1?
> De ser así, (necesariamente), ¿es posible indicar qué triggers se
> ven afectados ante el "Nested triggers"?, o, ¿ es para todos los
> triggers de una BBDD?
> ¿Es posible definir el nivel de recursividad?
>
> Recuerdo que en MS-SQL existe un comando que permite evitar los
triggers
> recursivos (algo así como set RECURSIVE_TRIGGERS off).
>
> Desde ya gracias por la ayuda
> Salu2
>
> --
> ,''`. Juan Pablo GO
> : :' : Sólo otro Debianita
> `. `' DEBIAN GNU/LINUX
> `-
>
>
> ---------------------------(fin del
mensaje)---------------------------
> TIP 1: para suscribirte y desuscribirte, escribe a
> majordomo(at)postgresql(dot)org

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message josue 2005-03-21 15:33:12 Auditoria de tablas
Previous Message JP 2005-03-21 06:56:30 Triggers recursivos