I just read this in the MySQL manual:
(http://dev.mysql.com/doc/mysql/en/InnoDB_Error_handling.html)
"Error handling in InnoDB is not always the same as specified in the SQL
standard. According to the standard, any error during an SQL statement
should cause the rollback of that statement. InnoDB sometimes rolls back
only part of the statement, or the whole transaction. The following items
describe how InnoDB performs error handling:"
Ignore InnoDB, but read "According to the standard, any error during an SQL
statement should cause the rollback of that statement"...
I though the postgres behaviour of rolling back the whole transaction was
standard? If that is not the case, I don't understand why core seems to be
against a mode (GUC), where an implicit savepoint is generated before each
statement so that "rollback of the last statement" would be possible.
Is MySQL wrong on the standard, or has postgresql core attitude changed to
support the standard where possible - at least if the user wants?
Best Regards,
Michael Paesold
P.S: again thanks for PostgreSQL!