"Marc G. Fournier" <scrappy@hub.org> writes:
> What happens if I abort on the first transaction? If I'm reading this
> right, if Trans2 does the exact same as above, and COMMITs before Trans1
> Aborts, the value of balance becomes +200 (Trans2 + Trans1) ... but what
> happens when Trans1 ABORTS? Trans2 believes its COMMIT worked, but
> ABORTng Trans1 will rollback to the original value, no?
If trans2 is the second to get to the row, it will *wait* until trans1
either commits or aborts, and then use the new or old version of the row
accordingly. The scenario you are thinking of can't happen.
regards, tom lane