在從頂層呼叫的過程或從頂層呼叫的匿名程式碼塊(DO 命令)中,可以控制事務。要提交當前事務,請呼叫 commit 命令。要回滾當前事務,請呼叫 rollback 命令。(請注意,無法透過 spi_exec 或類似方法執行 SQL 命令 COMMIT 或 ROLLBACK。必須使用這些函式來完成。)事務結束後,會自動啟動一個新事務,因此沒有單獨的命令來執行此操作。
以下是一個例子
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();
當顯式子事務處於活動狀態時,無法結束事務。
如果您在文件中看到任何不正確的內容、與您對特定功能的實際體驗不符的內容,或需要進一步澄清的內容,請使用此表格報告文件問題。