支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11

44.8. 交易管理 #

在從頂層呼叫的程序或從頂層呼叫的匿名程式碼區塊(DO 指令)中,可以控制交易。要提交目前的交易,請呼叫 plpy.commit()。要回滾目前的交易,請呼叫 plpy.rollback()。(請注意,無法透過 plpy.execute 或類似方式執行 SQL 指令 COMMITROLLBACK。必須使用這些函式來完成。)在交易結束後,會自動開始新的交易,因此沒有單獨的函式來執行此操作。

這是一個範例

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();

當明確的子交易處於活動狀態時,無法結束交易。

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步說明的地方,請使用此表格來回報文件問題。