47.45. pg_trigger
pg_trigger
存储表和视图上面的触发器。 参阅CREATE TRIGGER获取更多信息。
Table 47-45. pg_trigger
字段
名字 | 类型 | 引用 | 描述 |
---|---|---|---|
oid |
oid |
行标识符(隐藏属性;必须明确选择) | |
tgrelid |
oid |
pg_class .oid |
这个触发器所在的表 |
tgname |
name |
触发器名称(在同一表的所有触发器中必须唯一) | |
tgfoid |
oid |
pg_proc .oid |
要调用的函数 |
tgtype |
int2 |
标识触发器条件的位掩码 | |
tgenabled |
char |
在session_replication_role模块里控制触发器的触发。 O = 触发器在"origin"和"local"模块里触发, D = 禁用触发器, R = 触发器在"replica"模块里触发, A = 触发器总是触发。 |
|
tgisinternal |
bool |
如果触发器是内部产生的则为真(通常,强制约束由 tgconstraint 指定) |
|
tgconstrrelid |
oid |
pg_class .oid |
一个参照完整性约束引用的表 |
tgconstrindid |
oid |
pg_class .oid |
索引支持唯一、主键或参照完整性约束 |
tgconstraint |
oid |
pg_constraint .oid |
pg_constraint 条目与触发器相关,如果有 |
tgdeferrable |
bool |
如果约束触发器可推迟则为真 | |
tginitdeferred |
bool |
如果约束触发器是初始可推迟则为真 | |
tgnargs |
int2 |
传递给触发器函数的参数字符串个数 | |
tgattr |
int2vector |
pg_attribute .attnum |
如果触发器是指定字段的则为字段号;否则为空数组 |
tgargs |
bytea |
传递给触发器的参数字符串,每个都是用 NULL 结尾 | |
tgqual |
pg_node_tree |
触发器的WHEN 条件的表达式树(用nodeToString() 表示), 如果没有则为空 |
当前,指定字段的触发只支持UPDATE
事件,因此tgattr
只和事件类型相关。 tgtype
可能包含一些其他事件类型, 但是假定那些是在表范围的,不管tgattr
里有什么。
Note: 当
tgconstraint
非零时,tgconstrrelid
,tgconstrindid
,tgdeferrable
, 和tginitdeferred
与引用的pg_constraint
条目在很大程度上是冗余的。然而,不可延缓的触发器与可延缓的约束关联是可能的: 外键约束可以有一些可延缓和不可延缓的触发器。Note: 如果一个关系有任何触发器在这个表里,则
pg_class.relhastriggers
必须为真。