Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

53.58. pg_trigger #

目录 pg_trigger 存储表和视图上的触发器。有关更多信息,请参见 CREATE TRIGGER

表 53.58. pg_trigger

列类型

说明

oid oid

行标识符

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 = 触发器在 originlocal 模式中触发,D = 触发器已禁用,R = 触发器在 replica 模式中触发,A = 触发器始终触发。

tgisinternal bool

如果触发器是内部生成的(通常是为了强制 tgconstraint 标识的约束),则为 True

tgconstrrelid oid(引用 pg_class.oid

引用完整性约束的表(如果触发器不是用于完整性约束,则为零)

tgconstrindid oid(引用 pg_class.oid

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

tgconstraint oid(引用 pg_constraint.oid

与触发器关联的 pg_constraint 项(如果触发器不适用于约束,则为零)

tgdeferrable bool

如果约束触发器可延迟,则为 True

tginitdeferred bool

如果约束触发器最初被延迟,则为 True

tgnargs int2

传递给触发器函数的参数字符串数

tgattr int2vector(引用 pg_attribute.attnum

列号(如果触发器特定于列);否则为空数组

tgargs bytea

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

tgqual pg_node_tree

触发器 WHEN 条件的表达式树(以 nodeToString() 表示),如果没有,则为 null

tgoldtable name

REFERENCING 子句名称(用于 OLD TABLE),如果没有,则为 null

tgnewtable name

REFERENCING 子句名称(用于 NEW TABLE),如果没有,则为 null


目前,仅 UPDATE 事件支持特定于列的触发,因此 tgattr 仅与该事件类型相关。 tgtype 也可能包含其他事件类型的位,但无论 tgattr 中的内容如何,这些位都被假定为表范围的。

注意

tgconstraint 为非零时,tgconstrrelidtgconstrindidtgdeferrabletginitdeferred 在很大程度上与引用的 pg_constraint 项冗余。但是,不可延迟的触发器有可能与可延迟的约束关联:外键约束可以有一些可延迟的触发器和一些不可延迟的触发器。

注意

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