On Friday 14 January 2005 11:23, Dave Cramer wrote:
> With postgres once an error occurs in a transaction block you need
> to rollback. None of the transaction will commit.
>
> This behaviour makes sense as it assumes that the transaction block
> is atomic and it should all succeed or all fail.
For completeness sake, it should be mentioned that Oracle's way of
dealing with this is no less sensible. Oracle's transactions are
atomic in the sense that all of the statements that did not raise an
error are committed atomically. If any of the statements fail,
it's up to the application programmer to decide whether or not it
makes sense to continue with the remaining statements.
This question pops up frequently. Here's a random example:
http://archives.postgresql.org/pgsql-advocacy/2004-03/threads.php#00067