I too have been bothered about this behaviour in the past.
On 9/25/06, Michael Fuhr <mike@fuhr.org> wrote:Transactions are all-or-nothing: all statements must succeed or the
Correct.
> All other databases I used up to now just ignore the statement violating the
> constraint, but leave the transaction intact.
Which databases behave that way? Does COMMIT succeed even if some
statements failed?
Oracle, for one, behaves that way... Yes, COMMIT does succeed even if some statement(s) threw errors.
This is intended behavior. You can use savepoints to roll back
part of a transaction so the transaction can continue after an
error.
Probably, the 'other' DBs have implemented that by an implicit savepoint just before a command, and rollong back to it automatically, if the transaction fails.
This is quite a desirable feature...
--
gurjeet@EnterpriseDB.comsingh.gurjeet@{ gmail | hotmail | yahoo }.com