From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Cc: | Andreas Seltenreich <andreas+pg(at)gate450(dot)dyndns(dot)org>, Bernd Helmle <mailings(at)oopsware(dot)de> |
Subject: | Re: Trigger und Funktion |
Date: | 2007-03-09 08:45:25 |
Message-ID: | 200703090945.26244.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Am Donnerstag, 8. März 2007 15:23 schrieb Andreas Seltenreich:
> Ich sehe im Moment nicht einmal, wie hier non-repeatable- oder
> phantom-reads zu inkonsistenten Daten führen könnten, da durch den
> Trigger garantiert wird, daß für nebenläufig committete Tupel
> ebenfalls sum(amount) = 0 gilt, und sie somit keinen Einfluß auf das
> Ergebnis der Konsistenzbedingung im Trigger einer zu committenden
> Transaktion haben können.
Es kann sein, dass man in diesem konkreten Fall in der Tat ohne auskommt, da
die Integritätsbedingung der Gesamttabelle (sum = 0) durch die
Integritätsbedingung einer Transaktion (sum = 0) erhalten wird. Zumindest
könnte man mit Aussicht auf Erfolg versuchen, das zu beweisen.
Das Gegenbeispiel wäre, wenn die Gesamtbedingung für die Tabelle sum > 0 wäre
und keine Bedingung an die Transaktion gestellt wird (weil zum Beispiel
Umbuchen durchgeführt werden können). Dann kommt man ohne Locks nicht aus.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
From | Date | Subject | |
---|---|---|---|
Next Message | Alvar Freude | 2007-03-11 16:49:29 | Re: Trigger und Funktion |
Previous Message | Andreas Kretschmer | 2007-03-08 15:21:10 | Re: Trigger und Funktion |