Re: Trigger und Funktion

From: udono <udono(at)gmx(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Trigger und Funktion
Date: 2007-03-08 14:20:46
Message-ID: 45F01BBE.6060708@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo Andreas,
Andreas Seltenreich schrieb:
> A. Kretschmer writes:
>> am Wed, dem 07.03.2007, um 23:05:24 +0100 mailte udono folgendes:
>>> Es soll die Regel gelten, dass nur Buchungssätze in die Tabelle
>>> acc_trans dürfen (UPDATE, INSERT), deren Summe der Einzelbeträge
>>> (amount) aller Teilbuchungen (trans_id) 0 ergibt.
>> IMHO wäre hier ein ON COMMIT TRIGGER sinnvoll. Haben wir leider nicht.
> Hm, wenn man das "It is not intended for general use" in der Doku zu
> "create constraint trigger" überliest, kann man damit scheinbar den
> gewünschten Effekt erzielen:

Hui, das sieht verdammt gut aus! Klasse, vielen Dank!
So jetzt erstmal Postgres 8 installieren, meine 7.4.9 kann das so
nicht umsetzen.
Mit den anderen Programmierern und der Community werde ich noch
besprechen müssen, ob wir für die nächste Version von lx-office
postgres >= 8.0 voraussetzen können...

> --8<---------------cut here---------------start------------->8---
> create table acc_trans(trans_id int, amount numeric);
>
> create function check_balance() returns trigger as $$
[...]
> create constraint trigger check_balance
> after update or insert or delete
> on acc_trans initially deferred
> for each row execute procedure check_balance();
Wow, constraint trigger ...
Das sieht tatsächlich so aus, als könnte es funktionieren.
Ich werde es die nächsten Wochen mal testen und weiter Bericht
erstatten.
Auch die Hinweise von Peter und Bernd mit dem expliz. Lock werde ich
beachten.

Vielen Dank nochmal an euch alle!

Bis bald
Udo Spallek

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Seltenreich 2007-03-08 14:23:43 Re: Trigger und Funktion
Previous Message Bernd Helmle 2007-03-08 13:24:27 Re: Trigger und Funktion