On this page
46.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"来表明您已经修改了新行。否则,返回值将被忽略。