From: | Ewald Geschwinde <webmaster(at)geschwinde(dot)net> |
---|---|
To: | André Laugks <andre(dot)laugks(at)netcologne(dot)de> |
Cc: | pgsql-de-allgemein(at)postgresql(dot)org, pgusers(at)postgres(dot)de |
Subject: | Re: Trigger bewirkt Endlosschleife?! |
Date: | 2006-09-07 20:24:29 |
Message-ID: | 45007FFD.2000305@geschwinde.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
André Laugks schrieb:
> Hallo!
>
> Ich habe einen Trigger erstellt, dass nachdem ein Datensatz geupdatet
> wurde, in dem Feld "time_update" der aktuelle Timestamp gesetzt
> wird.
>
> Ich werde das Gefühl nicht los, dass es dabei zu einer Endlosschleife
> kommt, weil die die Funktion set_time_update () ein Update durchführt
> und PostgreSQL benötigt eine Weile und liefert dann die Fehlermeldung
> zurück, dass ich den von max_stack_depth anpassen sollte.
>
>
> CREATE TRIGGER tg_set_time_update AFTER UPDATE
> ON object FOR EACH ROW
> EXECUTE PROCEDURE set_time_update();
>
>
> CREATE OR REPLACE FUNCTION set_time_update () RETURNS trigger AS
> $$
> BEGIN
> EXECUTE 'UPDATE ' || quote_ident(TG_RELNAME) || ' SET time_update = now() WHERE oid =' || quote_literal(OLD.oid);
> RETURN NULL;
> END;
> $$
> LANGUAGE 'plpgsql';
>
>
> André Laugks
>
>
>
naja bin zwar schon etwas erledigt aber du nachwst after trigger auf die
table in der du selber ein update durchfürst im trigger
update -> trigger (update -> trigger (update -> trigger ....
du rufst den trigger im trigger auf ;)
lg Ewald
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Susanne Ebrecht | 2006-09-27 16:49:27 | Freiwilliger Helfer für Systems 2006 gesucht |
Previous Message | A. Kretschmer | 2006-09-07 16:58:28 | Re: Trigger bewirkt Endlosschleife?! |