On this page
45.6. 触发功能
当函数用作触发器时,字典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"
来表明您已经修改了新行。否则,返回值将被忽略。