What i am trying to do is update the field contact with field values in
firstname and lastname
Trigger
CREATE TRIGGER "updateContact" AFTER INSERT OR UPDATE
ON FOR EACH ROW
EXECUTE PROCEDURE "contacts"."addContactField"();
Procedure
CREATE OR REPLACE FUNCTION "contacts"."addContactField" () RETURNS
trigger AS
$body$
begin
update contacts.person
set "contact" = new.firstname
where person."primary" = new."primary";
return null;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
Tom Lane wrote:
>Jamie Deppeler <jamie@doitonce.net.au> writes:
>
>
>>At the moment i am trying to execute a very simple function but i am
>>getting the following error stack depth limit exceeded
>>
>>
>
>You didn't really show the complete context, but seeing that this is a
>trigger and it's trying to do an "UPDATE person" internally, I'll bet
>a nickel that the trigger itself is on update events on person, and
>therefore that you've written an infinite recursion.
>
>Had you shown more context, I could have given some advice on a better
>way to do it. If you're trying to alter the row that's about to be
>stored, you just have to assign to field(s) of the NEW row within the
>trigger. If you want to do something else, you need to explain what.
>
> regards, tom lane
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>
>
>
>
>