Hi everyone, I have problems with stored procedures introduced in version 11. I do not understand how to create a nested transaction, in this semplified example: create or replace procedure tst_prc(inout p_cod text) language plpgsql as $procedure$ begin p_cod := 'a'; begin update aziende set mail = 'asd@xxxxxxx' where id = 11; --1st update begin update aziende set telefono = '0123456789' where id = 11; --2nd update commit; raise notice 'Inner'; end; update aziende set telefono = '089' where id = 11; --3rd update --commit; rollback; raise notice 'Outer'; end; p_cod := 'b'; end; $procedure$ The third update goes, rightly, in rollback; the problem is that the first 2 are committed. I thought that the “BEGIN/END” block was used to create new transactions and that each of them could be managed individually. What am I doing wrong? Best regards. Paolo Pierotti
Viale Lombardia, 4 Lodi (LO) P: +39 075 8556435 W: www.mmbb.it |