支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11

45.4. 交易管理 #

SPI_commit — 提交目前的交易
SPI_rollback — 中止目前的交易
SPI_start_transaction — 已過時的函數

無法透過 SPI 函數(例如 SPI_execute)來執行交易控制命令(例如 COMMITROLLBACK)。但是,存在獨立的介面函數,允許透過 SPI 進行交易控制。

通常,在任意使用者定義的 SQL 可呼叫函數中啟動和結束交易是不安全且不明智的,而未考量呼叫它們的內容。例如,位於函數中間的交易邊界,而該函數是複雜 SQL 表達式的一部分,而該表達式又是某些 SQL 命令的一部分,則可能會導致不明顯的內部錯誤或崩潰。此處介紹的介面函數主要旨在由程序語言實作使用,以支援 SQL 層級程序中的交易管理,這些程序由 CALL 命令調用,並考量 CALL 呼叫的內容。以 C 實作的使用 SPI 程序可以實作相同的邏輯,但其細節超出了本文件的範圍。

提交更正

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