2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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();

在顯式子事務處於活動狀態時,無法結束事務。

提交更正

如果您在文件中看到任何不正確的內容、與您對特定功能的體驗不符的內容,或者需要進一步說明的內容,請使用 此表單 報告文件問題。