支援的版本: 目前 (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 的程序可以實作相同的邏輯,但其細節超出本文件範圍。

提交更正

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