在從頂層呼叫的程序或從頂層呼叫的匿名程式碼區塊(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();
當顯式子交易處於活動狀態時,無法結束交易。
如果您在文件中發現任何不正確、與您特定功能的經驗不符或需要進一步澄清之處,請使用此表單來報告文件問題。