Re: Trigger und Funktion
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/
Home |
Main Index |
Thread Index