8、postgres事务问题-分段提交

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;
posted @ 2024-01-22 16:37  站着说话不腰疼  阅读(111)  评论(0)    收藏  举报