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