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