postgres事务问题-分段提交
在postgres的pck中,存着这自动提交事务时,想让每个dml操作都能分步提交事务。
1、pck的总调用不能存在exception的异常捕获
注释调总体的异常捕获,再每个dml操作的里面进行异常捕获。
CREATE OR REPLACE PROCEDURE PROCEDURE_name("p_name" text)
AS $BODY$
DECLARE
v_count bigint;
BEGIN
begin
update sys_stu set name = '222' where name = p_name;
EXCEPTION
RAISE EXCEPTION '(%)', SQLERRM;
end;
commit;
--需要注释掉EXCEPTION
/*EXCEPTION
--意外处理
WHEN OTHERS THEN
--ROLLBACK;
--捕获异常,往外抛
RAISE EXCEPTION '(%)', SQLERRM;*/
END;
$BODY$
LANGUAGE plpgsql;
2、主要语法
declare
begin
--DML
begin
DML...
EXCEPTION
RAISE EXCEPTION '(%)', SQLERRM;
end;
commit;
--DML2
begin
DML2...
EXCEPTION
RAISE EXCEPTION '(%)', SQLERRM;
end;
commit;
--DML3
begin
DML3...
EXCEPTION
RAISE EXCEPTION '(%)', SQLERRM;
end;
commit;
end;
标签:SQLERRM,EXCEPTION,end,postgres,--,begin,提交,RAISE,分段
From: https://www.cnblogs.com/lgxdev/p/17980371