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

Node.js中使用pg库,客户端未提交事务断开连接后的行为疑问

Node.js pg库客户端断开未提交事务的处理逻辑

当你通过pg库启动客户端事务后,如果客户端意外断开连接且未执行COMMIT,PostgreSQL服务器会自动回滚这个未提交的事务。

这是PostgreSQL本身的核心机制,和pg客户端库无关:只要客户端连接被异常终止(不管是网络断开、进程崩溃还是主动关闭未提交),服务器端会立刻检测到连接丢失,随即触发事务的自动回滚,不会留下未提交的事务占用数据库资源。

举个简单的验证场景:

  • 启动事务:BEGIN;
  • 执行写入操作(比如INSERT INTO table_name (col) VALUES ('test');)
  • 直接关闭客户端连接(不执行COMMIT)
  • 重新连接数据库后查询对应表,会发现之前的写入操作完全没有生效,这就证明事务已经被自动回滚了

另外补充一点:如果你使用pg的连接池,当连接被放回池中的时候,如果该连接上存在未提交的事务,pg库会自动执行ROLLBACK来清理事务状态,避免影响后续复用该连接的请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:25:30