在從頂層呼叫的過程或從頂層呼叫的匿名程式碼塊(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();
當顯式子事務處於活動狀態時,無法結束事務。
如果您在文件中看到任何不正確的內容、與您對特定功能的實際體驗不符的內容,或需要進一步澄清的內容,請使用此表格報告文件問題。