46.9. Transaction Management
In a procedure called from the top level or an anonymous code block
command) called from the top level it is possible to
control transactions. To commit the current transaction, call
. To roll back the current transaction,
. (Note that it is not possible to
run the SQL commands
similar. It has to be done using these functions.) After a transaction is
ended, a new transaction is automatically started, so there is no separate
function for that.
Here is an example:
CREATE PROCEDURE transaction_test1() LANGUAGE plpythonu AS $$ for i in range(0, 10): plpy.execute("INSERT INTO test1 (a) VALUES (%d)" % i) if i % 2 == 0: plpy.commit() else: plpy.rollback() $$; CALL transaction_test1();
Transactions cannot be ended when an explicit subtransaction is active.