2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

44.5. 觸發器函式 #

當函式用作觸發器時,字典 TD 包含與觸發器相關的數值。

TD["event"]

包含事件作為字串:INSERTUPDATEDELETETRUNCATE

TD["when"]

包含 BEFOREAFTERINSTEAD OF 中的一個。

TD["level"]

包含 ROWSTATEMENT

TD["new"]
TD["old"]

對於行級觸發器,根據觸發器事件,這兩個欄位中的一個或兩個包含相應的觸發器行。

TD["name"]

包含觸發器名稱。

TD["table_name"]

包含發生觸發器的表的名稱。

TD["table_schema"]

包含發生觸發器的表的模式。

TD["relid"]

包含發生觸發器的表的 OID。

TD["args"]

如果 CREATE TRIGGER 命令包含引數,則它們可在 TD["args"][0]TD["args"][n-1] 中訪問。

如果 TD["when"]BEFOREINSTEAD OFTD["level"]ROW,則您可以從 Python 函式返回 None"OK" 來表示行未修改,返回 "SKIP" 來中止事件,或者如果 TD["event"]INSERTUPDATE,則可以返回 "MODIFY" 來表示您已修改新行。否則,返回值將被忽略。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。