在從頂層呼叫或從頂層呼叫的匿名程式碼塊(DO
命令)中,可以控制事務。要提交當前事務,請呼叫 plpy.commit()
。要回滾當前事務,請呼叫 plpy.rollback()
。(請注意,無法透過 plpy.execute
或類似函式執行 SQL 命令 COMMIT
或 ROLLBACK
。必須使用這些函式來完成。)事務結束後,會自動啟動一個新事務,因此沒有單獨的函式來執行此操作。
以下是一個例子
CREATE PROCEDURE transaction_test1() LANGUAGE plpython3u AS $$ for i in range(0, 10): plpy.execute("INSERT INTO test1 (a) VALUES (%d)" % i) if i % 2 == 0: plpy.commit() else: plpy.rollback() $$; CALL transaction_test1();
在顯式子事務處於活動狀態時,無法結束事務。
如果您在文件中看到任何不正確的內容、與您對特定功能的體驗不符的內容,或者需要進一步說明的內容,請使用 此表單 報告文件問題。