程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PostgreSQL 8.2中的嵌套事务?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决POSTGReSQL 8.2中的嵌套事务??

开发过程中遇到postgreSQL 8.2中的嵌套事务?的问题如何解决?下面主要结合日常开发的经验,给出你关于POSTGReSQL 8.2中的嵌套事务?的解决方法建议,希望对你解决POSTGReSQL 8.2中的嵌套事务?有所启发或帮助;

好吧,您可以使用SavePoints在postgresql中使用嵌套事务。

请看以下代码示例:

create table t1 (a INTEGER PRIMARY KEY);

create functION test_exception() RETURNS Boolean LANGUAGE plpgsql AS
$$BEGIN
   INSERT INTO t1 (a) VALUES (1);
   INSERT INTO t1 (a) VALUES (2);
   INSERT INTO t1 (a) VALUES (1);
   INSERT INTO t1 (a) VALUES (3);
   RETURN TRUE;
EXCEPTION
   WHEN integrity_consTraint_violation THEN
      RAISE NOTICE 'RollBACk to savepoint';
      RETURN falSE;
END;$$;

BEGIN;

SELECT test_exception();
NOTICE:  RollBACk to savepoint
 test_exception 
----------------
 f
(1 row)

COMMIT;

SELECT count(*) FROM t1;
 count 
-------
     0
(1 row)

也许这会对您有所帮助。

解决方法

我正在研究应用数据库架构更新的脚本。我已经使用start transaction /
commit设置了所有的SQL更新脚本。我在命令行上将这些脚本传递给psql。

现在,我需要在一个事务中同时应用多个脚本。到目前为止,我想出的唯一解决方案是从原始脚本集中删除启动事务/提交,然后将它们卡在新的启动事务/提交块中。我正在编写perl脚本来即时执行此操作。

实际上,我想要嵌套事务,但是我无法弄清楚在postgresql中该如何做。

为此有什么方法可以进行或模拟嵌套事务?我设置了一些东西来自动解决任何错误,因此,如果任何较低的事务失败,我就不需要继续进行顶层事务。

大佬总结

以上是大佬教程为你收集整理的PostgreSQL 8.2中的嵌套事务?全部内容,希望文章能够帮你解决PostgreSQL 8.2中的嵌套事务?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。