当函数用作触发器时,字典 TD
包含与触发器相关的值。
TD["event"]
包含一个字符串形式的事件:INSERT
、UPDATE
、DELETE
或 TRUNCATE
。
TD["when"]
包含 BEFORE
、AFTER
或 INSTEAD OF
之一。
TD["level"]
包含 ROW
或 STATEMENT
。
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"]
是 BEFORE
或 INSTEAD OF
且 TD["level"]
是 ROW
,您可以从 Python 函数返回 None
或 "OK"
来表示该行未被修改,返回 "SKIP"
来中止该事件,或者如果 TD["event"]
是 INSERT
或 UPDATE
,您可以返回 "MODIFY"
来表示您已修改了新行。 否则,返回值将被忽略。
如果您在文档中发现任何不正确、与您特定功能体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。