當函數被用作觸發器時,字典 TD
包含與觸發器相關的值
TD["event"]
包含事件作為字符串:INSERT
、UPDATE
、DELETE
或 TRUNCATE
。
TD["when"]
包含 BEFORE
、AFTER
或 INSTEAD OF
其中之一。
TD["level"]
包含 ROW
或 STATEMENT
。
TD["new"]
TD["old"]
對於 row 等級的觸發器,根據觸發事件,這些欄位中的一個或兩個包含相應的觸發列。
TD["name"]
包含觸發器名稱。
TD["table_name"]
包含觸發器發生所在的資料表名稱。
TD["table_schema"]
包含觸發器發生所在的資料表綱要。
TD["relid"]
包含觸發器發生所在的資料表的 OID。
TD["args"]
如果 CREATE TRIGGER
命令包含參數,它們可在 TD["args"][0]
到 TD["args"][
中使用。n
-1]
如果 TD["when"]
是 BEFORE
或 INSTEAD OF
且 TD["level"]
是 ROW
,您可以從 Python 函數返回 None
或 "OK"
來表示列未被修改,返回 "SKIP"
來中止事件,或者如果 TD["event"]
是 INSERT
或 UPDATE
,您可以返回 "MODIFY"
來表示您已經修改了新的列。否則,返回值會被忽略。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清之處,請使用 此表單 來報告文件問題。