45.38. pg_trigger

pg_trigger存储在表上的触发器。参阅CREATE TRIGGER获取更多信息。

Table 45-38. pg_trigger Columns

名称类型引用描述
tgrelidoidpg_class.oid这个触发器所在的表
tgnamename 触发器名称(在同一表的所有触发器中必须唯一)
tgfoidoidpg_proc.oid要调用的函数
tgtypeint2 标识触发器条件的位掩码
tgenabledchar  控制session_replication_role模式的 触发器。 O =触发器作用于"origin""local"模式, D = 触发器不能用, R = 触发器作用于"复制"模式, A = 触发器总是作用.
tgisinternalbool  如果触发器内部产生(通常情况下,执行 通过tgconstraint确定的约束),则为真。
tgconstrrelidoidpg_class.oid 一个参照完整性约束引用的表
tgconstrindidoidpg_class.oid 索引支持一个唯一的,主键,或参照完整性约束
tgconstraintoidpg_constraint.oid 如果存在的话,pg_constraint记录关联的触发器
tgdeferrablebool 如果约束触发器可推迟,则为真
tginitdeferredbool 如果约束触发器是初始可推迟,则为真
tgnargsint2 传给触发器函数的字符串参数数
tgattrint2vectorpg_attribute.attnum列数,如果触发器是特定列;否则空数组
tgargsbytea 传给触发器的字符串参数,每个都是用NULL结尾
tgqualtext  表达式树(在nodeToString() 中表示)为触发的WHEN情况,如果没有,则为NULL。

目前,列特定的触发器仅支持 UPDATE事件,所以tgattr有关 该事件的类型。tgtype可能 包含其他类型的事件所需的位,但假定那些为 全表范围内,不管在tgattr

Note: tgconstraint为非零值, tgconstrrelidtgconstrindidtgdeferrabletginitdeferred 很大程度上是多余的引用pg_constraint项。 然而,它可能是与延迟的约束相关的非延期触发:外键约束可以有一些 延期和一些非延期的触发器。

Note: 如果一个表在此目录中有触发器,pg_class.relhastriggers必须为真。