Does a COMMIT work within an anonymous plgpsql function in PostgreSQL 9.5?
No,
You can't control a transaction inside a plpgsql
function (or anonymous block).
The only option that you have its creating a transaction outside the block, eg:
BEGIN;
DO $$
-- function stuff
-- but if you use a exception, you will force a rollback
RAISE EXCEPTION 'message';
$$ LANGUAGE 'plpgsql';
COMMIT; -- OR ROLLBACK
BTW, DO BLOCKS
have the same effect that functions who returns void
.
Please, see more at the doc:
- https://www.postgresql.org/docs/current/static/sql-do.html