2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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 表示式又是某個 SQL 命令的一部分,這很可能會導致難以理解的內部錯誤或崩潰。這裡提供的介面函式主要用於過程語言實現,以支援由 CALL 命令呼叫的 SQL 級過程中的事務管理,並考慮 CALL 呼叫的上下文。用 C 實現的 SPI 使用過程可以實現相同的邏輯,但這超出了本文件的範圍。

提交更正

如果您在文件中發現任何不正確、與您使用的特定功能不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。