PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
上一页 | 上一级 | 章 43. PL/Python - Python 过程语言 | 下一页 |
当一个函数用作触发器的时候,字典TD包含触发器相关的值:
包含作为字符串的事件:INSERT、UPDATE、DELETE 或TRUNCATE。
包含BEFORE、AFTER或者INSTEAD OF之一。
包含ROW或者STATEMENT。
对于一个行级别触发器,这些字段的一个或两个包含各自的触发器行,取决于触发器事件。
包含触发器名字。
包含触发器发生的表的名称。
含触发器发生的表的模式。
包含触发器发生的表的OID。
如果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"表示你已经修改了该行。否则忽略返回值。