不能通过诸如 SPI_execute
之类的 SPI 函数运行诸如 COMMIT
和 ROLLBACK
之类的事务控制命令。 然而,有一些单独的接口函数允许通过 SPI 进行事务控制。
在不考虑调用上下文的情况下,在任意用户定义的 SQL 可调用函数中启动和结束事务通常是不安全和不明智的。 例如,在一个复杂 SQL 表达式(该表达式是某个 SQL 命令的一部分)的函数中间的事务边界可能会导致模糊的内部错误或崩溃。 这里介绍的接口函数主要用于过程语言实现,以支持在 CALL
命令调用的 SQL 级别过程中的事务管理,同时考虑 CALL
调用的上下文。 在 C 中实现的、使用 SPI 的过程可以实现相同的逻辑,但其细节超出了本文档的范围。
如果您在文档中发现任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。