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

51.58. pg_trigger #

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

表 51.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,如果关系在此目录中存在任何触发器。