Christophe Pettus <x...@thebuild.com> writes:
> A procedure cannot issue top-level transaction control statements from within 
> an exception block, and attempting to do so raises the error you saw.  This 
> includes procedures that are called from within an exception block.

Yeah.  Postgres doesn't have autonomous transactions (not yet anyway),
and you can't fake them like that.

A way that does work, I believe, is to set up a second session with
dblink[1] and use that to issue the autonomous transaction.  Ugly
and inefficient for sure, but if you've gotta have it...

                        regards, tom lane

[1] https://www.postgresql.org/docs/current/dblink.html


Reply via email to