Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Trigger bewirkt Endlosschleife?!



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





Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group