2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: 開發版
不再支援的版本: 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();

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

提交更正

如果您在文件中看到任何不正確的內容、與您對特定功能的實際體驗不符的內容,或需要進一步澄清的內容,請使用此表格報告文件問題。