举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > PostgreSQL triggers

PostgreSQL triggers

2023-05-02 05:20 PostgreSQL triggers

 PostgreSQL triggers

视图triggers包含所有定义在当前数据库中表和视图上的触发器,并且只显示当前用户拥有的触发器或者是当前用户在其上具有某种除SELECT之外特权的触发器。

表 36.51. triggers

列类型

描述

trigger_catalog sql_identifier

包含该触发器的数据库名称(总是当前数据库)

trigger_schema sql_identifier

包含该触发器的模式名称

trigger_name sql_identifier

触发器的名称

event_manipulation character_data

触发该触发器的事件(INSERTUPDATEDELETE

event_object_catalog sql_identifier

包含触发器所在的表的数据库名称(总是当前数据库)

event_object_schema sql_identifier

包含该触发器所在的表的模式名称

event_object_table sql_identifier

该触发器所在的表的名称

action_order cardinal_number

同一个表上具有相同event_manipulationaction_timingaction_orientation的触发器之间的触发顺序。 在PostgreSQL中,触发器按照名称顺序被触发,因此这一列会反映这种规则。

action_condition character_data

触发器的WHEN条件,如果没有则为空(如果该表不被一个当前已启用角色拥有也是为空)

action_statement character_data

触发器执行的语句(当前总是 EXECUTE FUNCTION function (...)

action_orientation character_data

标识触发器是对每个被处理的行触发一次还是为每个语句触发一次(ROWSTATEMENT

action_timing character_data

触发器在什么时候触发(BEFOREAFTERINSTEAD OF

action_reference_old_table sql_identifier

传递表的名称,如果没有则为空

action_reference_new_table sql_identifier

传递表的名称,如果没有则为空

action_reference_old_row sql_identifier

应用于一个PostgreSQL中不可用的特性

action_reference_new_row sql_identifier

应用于一个PostgreSQL中不可用的特性

created time_stamp

应用于一个PostgreSQL中不可用的特性


PostgreSQL中的触发器有两点与 SQL 标准不兼容,这会影响在该信息模式中的表示。第一,在PostgreSQL中触发器的名字是局限于每个表的,而不是独立于模式对象。因此可能在一个模式中会有重复的触发器名称,只要它们属于不同的表(trigger_catalogtrigger_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_timingaction_reference_old_tableaction_reference_new_tableaction_reference_old_rowaction_reference_new_row分别被命名为 condition_timingcondition_reference_old_tablecondition_reference_new_tablecondition_reference_old_rowcondition_reference_new_row。 那也是它们在 SQL:1999 标准中的命名。新的命名遵循 SQL:2003 及其后的版本。

阅读全文
以上是名动网为你收集整理的 PostgreSQL triggers全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  PostgreSQL 更新

    PostgreSQL 更新

    2023-04-21 PostgreSQL 更新

    你可以用UPDATE命令更新现有的行。假设你发现所有 11 月 28 日以后的温度读数都低了两度,那么你就可以用下面的方式改正数据:UP...

  •  PostgreSQL 外部数据

    PostgreSQL 外部数据

    2023-03-29

    PostgreSQL实现了部分的SQL/MED规定,允许我们使用普通SQL查询来访问位于PostgreSQL之外的数据。这种数据被称为外部数据(注意这...

  •  PostgreSQL pg_replication_origin

    PostgreSQL pg_replication_origin

    2023-04-04

    pg_replication_origin目录包含所有已创建的复制源。更多复制源的信息请见第49章。和大部分系统目录不同,pg_replication_origin...

  •  PostgreSQL pg_statistic_ext

    PostgreSQL pg_statistic_ext

    2023-06-01

    目录pg_statistic_ext包含了扩展的规划器统计信息的定义。这个目录中的每一行对应于一个用CREATE STATISTICS创建的统计信息对象...

  •  PostgreSQL pg_matviews

    PostgreSQL pg_matviews

    2023-05-27

    视图pg_matviews提供了关于数据库中每一个物化视图的信息。表51.75.pg_matviews Columns列类型描述 schemanamename(参考 pg_name...

© 2024 名动网 mdwl.vip 版权所有 联系我们