# 52.56.pg_trigger

目录pg_trigger在表和视图上存储触发器。看创建触发器了解更多信息。

表 52.56.pg_trigger

列类型

描述
样的 样的

行标识符
tgrelid 样的(参考pg_class.样的)

此触发器所在的表
tgparentid 样的(参考pg_trigger.样的)

从中克隆此触发器的父触发器(在创建分区或将其附加到分区表时发生);如果不是克隆则为零
名称 姓名

触发器名称(在同一个表的触发器中必须是唯一的)
tgfoid 样的(参考pg_proc.样的)

要调用的函数
类型 整数2

识别触发器触发条件的位掩码
启用 tg 字符

控制其中会议_复制_角色模式触发器触发。= 在“原点”和“本地”模式下触发触发,D= 触发器被禁用,R= 在“副本”模式下触发触发,一种= 触发器总是触发。
tgisinternal 布尔

如果触发器是内部生成的,则为真(通常,强制执行由tg约束)
tgconstrrelid 样的(参考pg_class.样的)

引用完整性约束引用的表(如果触发器不是用于引用完整性约束,则为零)
tgconstrindid 样的(参考pg_class.样的)

支持唯一、主键、引用完整性或排除约束的索引(如果触发器不是这些类型的约束之一,则为零)
tg约束 样的(参考pg_constraint.样的)

pg_constraint与触发器关联的条目(如果触发器不是用于约束,则为零)
tgdeferable 布尔

如果约束触发器是可延迟的,则为真
tginitdeferred 布尔

如果最初延迟约束触发器,则为真
tgnargs 整数2

传递给触发函数的参数字符串数
tgattr int2vector(参考pg_attribute.attnum)

列号,如果触发器是特定于列的;否则为空数组
tgargs 拜茶

要传递给触发器的参数字符串,每个以 NULL 结尾
tgqual pg_node_tree

表达式树(在节点字符串()表示)用于触发器的什么时候条件,如果没有,则为 null
tgoldtable 姓名

参考子句名称旧表, 如果没有,则为 null
tgnewtable 姓名

参考子句名称新表, 如果没有,则为 null

目前,仅支持特定于列的触发更新事件等等tgattr仅与该事件类型相关。类型也可能包含其他事件类型的位,但无论在tgattr.

# 笔记

什么时候tg约束非零,tgconstrrelid,tgconstrindid,tgdeferable, 和tginitdeferred与所引用的相比在很大程度上是多余的pg_constraint入口。然而,一个不可延迟的触发器可能与一个可延迟的约束相关联:外键约束可以有一些可延迟的触发器和一些不可延迟的触发器。

# 笔记

pg_class.relhastriggers如果关系在此目录中有任何触发器,则必须为真。