On this page
51.56. pg_trigger
目录pg_trigger
将触发器存储在表和视图上。有关更多信息,请参见CREATE TRIGGER。
表 51.56. pg_trigger
列
Name | Type | References | Description |
---|---|---|---|
oid |
oid |
行标识符(隐藏属性;必须显式选择) | |
tgrelid |
oid |
pg_class.oid |
此触发器所在的表 |
tgname |
name |
触发器名称(在同一表的触发器之间必须唯一) | |
tgfoid |
oid |
pg_proc.oid |
要调用的函数 |
tgtype |
int2 |
位掩码标识触发器触发条件 | |
tgenabled |
char |
控制触发触发器的session_replication_role模式。 O =在“原始”和“本地”模式下触发触发器,D =触发器被禁用,R =在“副本”模式下触发触发器,A =始终触发触发器。 |
|
tgisinternal |
bool |
如果在内部生成触发器,则为 True(通常用于实施tgconstraint 标识的约束) |
|
tgconstrrelid |
oid |
pg_class.oid |
参照完整性约束所参照的表 |
tgconstrindid |
oid |
pg_class.oid |
支持唯一,主键,引用完整性或排除约束的索引 |
tgconstraint |
oid |
pg_constraint.oid |
与触发器关联的pg_constraint 条目(如果有) |
tgdeferrable |
bool |
如果约束触发器可延期,则为真 | |
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
中有什么,都假定它们为表范围的。
Note
当tgconstraint
为非零时,tgconstrrelid
,tgconstrindid
,tgdeferrable
和tginitdeferred
对于引用的pg_constraint
条目在很大程度上是多余的。但是,不可延迟的触发器可能与可延迟的约束相关联:外键约束可以具有一些可延迟的触发器和一些不可延迟的触发器。
Note
如果关系在此目录中有任何触发器,则pg_class.relhastriggers
必须为 true。