pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
triggers #视图triggers包含当前数据库中定义在当前用户拥有的或对其有某些非 SELECT 权限的表和视图上的所有触发器。
表 34.50. triggers 列
| 名称 | 数据类型 | 描述 |
|---|---|---|
trigger_catalog |
sql_identifier |
包含该触发器的数据库名称(总是当前数据库) |
trigger_schema |
sql_identifier |
包含该触发器的模式名称 |
trigger_name |
sql_identifier |
触发器的名称 |
event_manipulation |
character_data |
触发该触发器的事件(INSERT、UPDATE或DELETE) |
event_object_catalog |
sql_identifier |
包含触发器所在的表的数据库名称(总是当前数据库) |
event_object_schema |
sql_identifier |
包含触发器所在的表的模式名称 |
event_object_table |
sql_identifier |
触发器所在的表的名称 |
action_order |
cardinal_number |
Not yet implemented |
action_condition |
character_data |
触发器的WHEN条件,如果没有则为空(如果该表不被当前已启用角色拥有也是为空) |
action_statement |
character_data |
触发器执行的语句(当前总是 EXECUTE PROCEDURE ) |
action_orientation |
character_data |
标识触发器是对每个被处理的行触发一次还是为每个语句触发一次(ROW或STATEMENT) |
action_timing |
character_data |
触发器在什么时候触发(BEFORE、AFTER或INSTEAD OF) |
action_reference_old_table |
sql_identifier |
对应 PostgreSQL 不支持的特性 |
action_reference_new_table |
sql_identifier |
对应 PostgreSQL 不支持的特性 |
action_reference_old_row |
sql_identifier |
对应 PostgreSQL 不支持的特性 |
action_reference_new_row |
sql_identifier |
对应 PostgreSQL 不支持的特性 |
created |
time_stamp |
对应 PostgreSQL 不支持的特性 |
PostgreSQL中的触发器有两点与 SQL 标准不兼容,这会影响在该信息模式中的表示。第一,在PostgreSQL中触发器的名字是局限于每个表的,而不是独立于模式对象。因此可能在一个模式中会有重复的触发器名称,只要它们属于不同的表(trigger_catalog和trigger_schema才真正标识了触发器被定义在哪个表上)。第二,在PostgreSQL中触发器可以被定义为在多个事件上触发(例如ON INSERT OR UPDATE),而在 SQL 标准中只允许一个。如果一个触发器被定义为在多个事件上触发,它在信息模式中被表示为多行,每一行对应于一类事件。作为这两个问题的结果,视图triggers的主键实际上是(trigger_catalog, trigger_schema, event_object_table, trigger_name, event_manipulation),而不是(trigger_catalog, trigger_schema, trigger_name)(这是 SQL 标准指定的)。尽管如此,如果你以符合 SQL 标准(在模式中触发器名称唯一并且每个触发器只能有一种事件类型)的方式定义你的触发器,这将不会影响你。
在PostgreSQL 9.1 之前,这个视图的列 action_timing、 action_reference_old_table、 action_reference_new_table、 action_reference_old_row和 action_reference_new_row 分别被命名为 condition_timing、 condition_reference_old_table、 condition_reference_new_table、 condition_reference_old_row和 condition_reference_new_row。 那也是它们在 SQL:1999 标准中的命名。新的命名遵循 SQL:2003 及其后的版本。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。