Thanks for your response, i made a mistake, the last function is like this: CREATE OR REPLACE FUNCTION Z RETURNS "trigger" AS $BODY$ begin if (tg_op in ('INSERT', 'UPDATE', 'DELETE')) then update B; end if; $BODY$ LANGUAGE 'plpgsql' VOLATILE; And the reason why i made a fake example is because it basically is that, a simple function with a simple update. I'd just like to know why if i do that update through a query it invokes the trigger and not when i do it inside the function. Danilo Guevara Departamento de Sistemas Acceso Crediticio SAC ---------- Original Message ----------- From: Decibel! <decibel@xxxxxxxxxxx> To: dguevara <dguevara@xxxxxxxxxxxxx> Cc: pgsql-admin@xxxxxxxxxxxxxx Sent: Thu, 21 Feb 2008 17:31:44 -0600 Subject: Re: Trigger from a function > On Feb 18, 2008, at 10:29 AM, dguevara wrote: > > > Hello all, > > > > I have a problem with a trigger which is executed when i make an > > UPDATE trought a simple query, but > > not when the UPDATE is made in a store procedure. > > > > Maybe i'm missing something in the declaration of the function and > > i would appreciate any help. > > T > > his is the function: > > > > CREATE OR REPLACE FUNCTION X > > RETURNS SETOF void AS > > $BODY$ > > > > begin > > update A; > > end; > > $BODY$ > > LANGUAGE 'plpgsql' VOLATILE; > > > > > > The trigger: > > > > CREATE TRIGGER Y > > BEFORE INSERT OR UPDATE > > ON A > > FOR EACH ROW > > EXECUTE PROCEDURE Z; > > > > CREATE OR REPLACE FUNCTION Z > > RETURNS "trigger" AS > > $BODY$ > > begin > > if (tg_op in ('INSERT', 'UPDATE', 'DELETE')) then > > update A; > > end if; > > $BODY$ > > LANGUAGE 'plpgsql' VOLATILE; > > Can't help much with your fake example, but I am wondering why you > have a recursive trigger on A. > -- > Decibel!, aka Jim C. Nasby, Database Architect decibel@xxxxxxxxxxx > Give your computer some brain candy! www.distributed.net Team #1828 ------- End of Original Message ------- ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings