You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

默认autocommit下调用PostgreSQL PL/pgSQL函数是否为单个事务?

调用next_work_item()函数的事务属性说明

你的调用操作会被视为单个独立事务,具体原因如下:

  • JDBC层的默认autocommit配置为true,doobie作为基于JDBC封装的Scala库,默认继承该配置不会主动修改。该配置规则下,每一条独立执行的SQL语句都会被自动包裹在独立事务中:语句执行成功则自动提交,执行出错则自动回滚,不需要手动做事务操作。
  • PostgreSQL 12.x的规则中,单条SQL调用PL/pgSQL函数的场景下,函数内部所有的读写逻辑都会归属到当前SQL对应的事务中,不存在函数逻辑脱离当前语句事务的情况。
  • 只有当你在doobie中显式用.transactionally等操作开启事务块,将多条SQL包裹在同一个事务上下文中时,该函数调用才会归属到你手动创建的事务中。默认场景下的单条函数调用完全符合autocommit的单事务规则。

内容的提问来源于stack exchange,提问作者sumek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 15:24:09