我在函数中使用dblink进行提交和回滚,是否有办法在PostgreSQL中使用dblink连接设置自动提交功能?我不需要永久关闭数据库的自动提交功能(即使用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;