On this page
47.4. TransactionManagement
SPI_commit-提交当前 Transaction
SPI_rollback —中止当前 Transaction
SPI_start_transaction-开始新 Transaction
无法通过SPI_execute
之类的 SPI 函数运行诸如COMMIT
和ROLLBACK
之类的事务控制命令。但是,有单独的接口功能允许通过 SPI 进行事务控制。
在不考虑调用它们的上下文的情况下,在任意用户定义的 SQL 可调用函数中开始和结束事务通常是不安全且不明智的。例如,作为某些 SQL 命令一部分的复杂 SQL 表达式的一部分,函数中间的事务边界可能会导致模糊的内部错误或崩溃。这里介绍的接口函数主要供过程语言实现使用,以支持CALL
命令调用的 SQL 级过程中的事务 Management,同时考虑到CALL
调用的上下文。用 C 实现的使用 SPI 的过程可以实现相同的逻辑,但是其详细信息不在本文档的讨论范围之内。