2024年9月26日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:开发版
不支持的版本:11

45.4. 事务管理 #

SPI_commit — 提交当前事务
SPI_rollback — 回滚当前事务
SPI_start_transaction — 已过时函数

无法通过诸如 COMMITROLLBACK 之类的 SPI 函数(例如 SPI_execute)运行事务控制命令。但是,有一些单独的接口函数允许通过 SPI 控制事务。

在不考虑调用上下文的任意用户定义的 SQL 可调用函数中启动和结束事务通常是不安全和不合理的。例如,在一个复杂的 SQL 表达式(该表达式是某个 SQL 命令的一部分)中作为一部分的函数中间的事务边界可能会导致模糊的内部错误或崩溃。此处提供的接口函数主要用于过程语言实现,以支持由 CALL 命令调用的 SQL 级过程中的事务管理,并考虑 CALL 调用的上下文。在 C 中实现的 SPI 使用过程可以实现相同的逻辑,但其细节超出了本文档的范围。

提交更正

如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表单 报告文档问题。