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 und Funktion



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



Home | Main Index | Thread Index

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