pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
pg_trigger #目录 pg_trigger 存储表和视图上的触发器。详见 CREATE TRIGGER。
表 52.56. pg_trigger 列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
oid |
oid |
行标识符(隐藏属性,必须显式选择) | |
tgrelid |
oid |
|
触发器所在的表 |
tgname |
name |
触发器名(在同一个表的触发器中必须唯一) | |
tgfoid |
oid |
|
要被触发器调用的函数 |
tgtype |
int2 |
标识触发器触发条件的位掩码 | |
tgenabled |
char |
控制触发器在 session_replication_role 模式中的触发。O = 触发器在“origin”和“local”模式触发,D = 触发器被禁用,R = 触发器在“replica”模式触发,A = 触发器总是触发。 |
|
tgisinternal |
bool |
为真表示触发器是内部生成的(通常是为了强制执行由 tgconstraint 指定的约束) |
|
tgconstrrelid |
oid |
|
被一个引用完整性约束引用的表 |
tgconstrindid |
oid |
|
支持一个唯一、主键、引用完整性约束或者排他约束的索引 |
tgconstraint |
oid |
|
与触发器相关的 pg_constraint 项(如有) |
tgdeferrable |
bool |
如果约束触发器可延迟则为真 | |
tginitdeferred |
bool |
如果约束触发器初始处于延迟状态则为真 | |
tgnargs |
int2 |
传递给触发器函数的参数字符串个数 | |
tgattr |
int2vector |
|
如果触发器是列限定的,这里存放列号;否则这是一个空数组 |
tgargs |
bytea |
传递给触发器的参数字符串,每一个都以 NULL 结尾 | |
tgqual |
pg_node_tree |
触发器 WHEN 条件的表达式树(以 nodeToString() 表示);如果没有则为 NULL |
|
tgoldtable |
name |
OLD TABLE 在 REFERENCING 子句中指定的名称;如果没有,则为 NULL |
|
tgnewtable |
name |
NEW TABLE 在 REFERENCING 子句中指定的名称;如果没有,则为 NULL |
当前,列限定触发器只支持 UPDATE 事件,因此 tgattr 只用于这种事件类型。tgtype 也可以包含用于其他事件类型的位,但那些事件类型被视为针对全表,而不考虑 tgattr 的内容。
当 tgconstraint 非零时,tgconstrrelid、tgconstrindid、tgdeferrable 和 tginitdeferred 与被引用的 pg_constraint 项有很大的冗余。但是,存在将一个不可延迟触发器关联到一个可延迟约束的可能性:外键约束可以有一些可延迟和一些不可延迟触发器。
如果一个关系在本目录中拥有任何触发器,其 pg_class.relhastriggers 必须为真。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。