Triggers recursivos

From: JP <mozstyle2002(at)gmx(dot)net>
To: Pgsql-Es-Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Triggers recursivos
Date: 2005-03-21 06:56:30
Message-ID: 423E701E.6020801@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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
`-

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Hugo Gamarra 2005-03-21 15:16:43 RE: Triggers recursivos
Previous Message Alvaro Herrera 2005-03-20 14:36:46 Re: Ayuda Update Multiples Tablas