Re: stack depth limit exceeded
От | Jamie Deppeler |
---|---|
Тема | Re: stack depth limit exceeded |
Дата | |
Msg-id | 431284DC.5000306@doitonce.net.au обсуждение исходный текст |
Ответ на | Re: stack depth limit exceeded (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: stack depth limit exceeded
Re: stack depth limit exceeded |
Список | pgsql-general |
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 > > > > >
В списке pgsql-general по дате отправления: