Я использую dblink для фиксации и отката в своей функции, есть ли способ отключить автоматическую фиксацию с помощью соединения dblink в postgresql? Мне не нужно постоянно отключать автофиксацию для базы данных (т.е. с помощью файла psqlrc)
CREATE OR REPLACE FUNCTION test() RETURNS VOID AS $BODY$
declare
v_sql varchar;
v_int int;
begin
perform dblink_connect('pg', 'myconn');
v_sql := 'begin;';
perform dblink_exec('pg', v_sql);
v_sql := 'insert into testlog values (''aa'')';
perform dblink_exec('pg', v_sql);
v_sql := 'commit;';
perform dblink_exec('pg', v_sql);
perform dblink_disconnect('pg');
exception
when others then
v_sql := 'rollback;';
perform dblink_exec('pg', v_sql);
perform dblink_disconnect('pg');
raise exception '%', sqlerrm;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
begin; insert ..; commit;
как один вызов dblink, а не как три отдельных. - person a_horse_with_no_name   schedule 06.12.2018