Re: durch update in einem trigger einen anderen trigger

From: Andreas Seltenreich <andreas+pg(at)gate450(dot)dyndns(dot)org>
To: "Daniel J(dot) Priem" <danielpriem(at)flexserv(dot)de>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: durch update in einem trigger einen anderen trigger
Date: 2006-03-13 12:47:40
Message-ID: 87k6aybjf7.fsf@gate450.dyndns.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Daniel J. Priem writes:

> wenn ich ein ein insert mache wird insert-trigger (ich mache ein update)
> aufgerufen.
> dieses update wiederum müsste update-trigger(ich mach was andres)
> aufrufen.
> leider passiert nur step 1
> führe ich jedoch ein händisches update foo.bar value 123 aus dann feuert
> update-trigger.

Welche PostgreSQL-Version? Wie sehen die DDL-Statements aus? Ohne ein
vollständiges Beispiel zum Reproduzieren kann man sonst nur raten.

Sicher, daß der Trigger nicht auslöst? Im Zweifelsfall ein RAISE
NOTICE einbauen. Möglicherweise findet ja eines der Statements keine
passenden Zeilen...

> CREATE OR REPLACE FUNCTION update_basnhex()
> RETURNS "trigger" AS
> '
> BEGIN
> IF TG_OP = ''UPDATE'' THEN
> INSERT INTO basnhex (banr) VALUES (NEW.banr) ;
> UPDATE artbacn SET countanzahl = NEW.countanzahl -1 WHERE banr =
> NEW.banr AND OLD.countanzahl > 1;

...wenn deine DDL hier z.B. keinen passenden Defaultwert enthält, ist
"countanzahl" wohl NULL, und es passiert deshalb vielleicht nicht, was
du erwartest.

> /*
> CREATE or replace RULE copy_artbacn AS ON INSERT TO artbacn DO ( insert
> into artbacn (countanzahl) SELECT anzahl FROM artbacn where countanzahl
> IS NULL);
> */

Ist die Rule nun in der Datenbank oder nicht?

HTH
Andreas
--

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Kretschmer 2006-03-27 16:11:34 Re: [ck@ix.de: PostgreSQL in der iX]
Previous Message Daniel J. Priem 2006-03-11 00:17:38 durch update in einem trigger einen anderen trigger auslösen