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

42.10. 交易管理 #

在從頂層呼叫的程序或從頂層呼叫的匿名程式碼區塊(DO 命令)中,可以控制交易。要提交目前的交易,請呼叫 commit 命令。要回滾目前的交易,請呼叫 rollback 命令。(請注意,無法透過 spi_exec 或類似功能執行 SQL 命令 COMMITROLLBACK。必須使用這些函式。)交易結束後,會自動啟動新的交易,因此沒有單獨的命令來執行此操作。

這是一個範例

CREATE PROCEDURE transaction_test1()
LANGUAGE pltcl
AS $$
for {set i 0} {$i < 10} {incr i} {
    spi_exec "INSERT INTO test1 (a) VALUES ($i)"
    if {$i % 2 == 0} {
        commit
    } else {
        rollback
    }
}
$$;

CALL transaction_test1();

當顯式子交易處於活動狀態時,無法結束交易。

提交更正

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