支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11

45.4. 事务管理 #

SPI_commit — 提交当前事务
SPI_rollback — 中止当前事务
SPI_start_transaction — 已过时的函数

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

在任意用户定义的 SQL 可调用函数中启动和结束事务通常是不安全且不明智的,而没有考虑到它们被调用的上下文。例如,在某个复杂 SQL 表达式中间的函数中的事务边界,该表达式是某个 SQL 命令的一部分,可能会导致模糊的内部错误或崩溃。此处介绍的接口函数主要旨在由过程语言实现使用,以支持由 CALL 命令调用的 SQL 级过程中的事务管理,同时考虑到 CALL 调用的上下文。用 C 实现的使用 SPI 的过程可以实现相同的逻辑,但这些细节超出了本文档的范围。

提交更正

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