I'm a newbie with PostgreSQL/libpq. So please help me clarify my confusion:
Assuming I start by executing a 'START TRANSACTION' and do proper error checking (PQresultStatus(res) != [proper_success_value]), am I required to execute a 'ROLLBACK' if something goes wrong after I make an insertion? For example:
In this case am I required to execute a 'ROLLBACK' after 'UPDATE' fails? Also what do I do if 'ROLLBACK' also fails?
This really is best understood by reading the manual:
https://www.postgresql.org/docs/current/static/tutorial-transactions.html
ROLLBACK TO is the only way to regain control of a transaction block that was put in aborted state by the system due to an error, short of rolling it back completely and starting again.
Rollback should not be able to fail.
Transactions are placed in an aborted state meaning you can't carry on doing anything in that transaction. You can use a save point to recover that transaction but other than that all you can do is rollback.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With