当函数被用作触发器时,字典
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" 表示您已修改了新行。
否则返回值会被忽略。