Postgresql 中文操作指南
53.58. pg_trigger #
目录 pg_trigger 存储触发器,对表和视图。有关详细信息,请参见 CREATE TRIGGER 。
Table 53.58. pg_trigger Columns
Column Type Description |
oid oid Row identifier |
tgrelid oid (引用 pg_class . oid )此触发器所在的表 |
tgparentid oid (引用 pg_trigger . oid )此触发器所克隆的父触发器(当分区被创建或附加到分区表时发生);如果不是克隆,则为零 |
tgname name 触发器名称(必须在同一表的触发器中唯一) |
tgfoid oid (引用 pg_proc . oid )要调用的函数 |
tgtype int2 用于标识触发器触发条件的位掩码 |
tgenabled char 控制触发器在其中触发 session_replication_role 模式。 O = 触发器以“源”和“本地”模式触发, D = 触发器被禁用, R = 触发器以“副本”模式触发, A = 触发器始终触发。 |
tgisinternal bool 如果触发器是内部生成的(通常为强制 tgconstraint 标识的约束),则为真 |
tgconstrrelid oid (引用 pg_class . oid )由引用完整性约束引用的表(如果触发器不是引用完整性约束,则为零) |
tgconstrindid oid (引用 pg_class . oid )支持唯一性、主键、引用完整性或排除约束的索引(如果触发器不是其中一种约束,则为零) |
tgconstraint oid (引用 pg_constraint . oid )与触发器关联的 pg_constraint 条目(如果触发器不是约束,则为零) |
tgdeferrable bool 如果约束触发器可延迟,则为 true |
tginitdeferred bool 如果最初延迟约束触发器,则为真 |
tgnargs int2 传递给触发器函数的参数字符串数 |
tgattr int2vector (引用 pg_attribute . attnum )如果触发器与特定列相关,则为列号;否则为空数组 |
tgargs bytea 传递给触发器的参数字符串,每个以 NULL 终止 |
tgqual pg_node_tree 触发器 WHEN 条件的表达式树(以 nodeToString() 表示),如果没有,则为空 |
tgoldtable name REFERENCING 对于 OLD TABLE 的子句名称,如果不存在,则为 null |
tgnewtable name REFERENCING 对于 NEW TABLE 的子句名称,如果不存在,则为 null |
目前,特定列的触发仅支持 UPDATE 事件,因此 tgattr 仅与此事件类型相关。tgtype 也可能包含其他事件类型的比特位,但是无论 tgattr 为何,这些事件类型都推测是针对整个表的。
Note
当 tgconstraint 非零时, tgconstrrelid 、 tgconstrindid 、 tgdeferrable 和 tginitdeferred 主要与引用的 pg_constraint 条目相冗余。但是,也有可能有一个不能推迟的触发器与一个可推迟约束相关联:外键约束可以有一些可推迟的触发器和一些不能推迟的触发器。