pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
CREATE CONSTRAINT TRIGGER — 定义一个新的约束触发器
CREATE CONSTRAINT TRIGGERnameAFTERevent[ OR ... ] ONtable_name[ FROMreferenced_table_name] { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } FOR EACH ROW [ WHEN (condition) ] EXECUTE PROCEDUREfunction_name(arguments)
CREATE CONSTRAINT TRIGGER创建一个约束触发器。它与常规触发器相同,只是触发器引发的时机可以使用SET CONSTRAINTS来调整。约束触发器必须是AFTER ROW触发器。它们既可以在导致触发事件的那条语句结束时引发,也可以在包含它的事务结束时引发;在后一种情况下,称它们为被延迟的(deferred)。一个待处理的延迟触发器引发也可以通过使用SET CONSTRAINTS强制立即发生。
name约束触发器的名称。这也是使用SET CONSTRAINTS修改触发器行为时所用的名称。该名称不能带模式限定—触发器继承其表的模式。
eventINSERT、UPDATE或DELETE之一;它指定将引发该触发器的事件。可以使用OR指定多个事件。
table_name触发事件发生的表(可能是模式限定的)的名称。
referenced_table_name被该约束引用的另一张表(可能是模式限定的)的名称。这个选项用于外键约束,不推荐一般用途使用。
DEFERRABLENOT DEFERRABLEINITIALLY IMMEDIATEINITIALLY DEFERRED触发器的默认时机。这些约束选项的细节见CREATE TABLE的文档。
condition一个决定触发器函数是否实际被执行的布尔表达式。它的作用与CREATE TRIGGER中相同。特别要注意,WHEN条件的求值不会被延迟,而是在行更新操作执行之后立即进行。如果条件的求值结果不为true,则该触发器不会被排入延迟执行的队列。
function_name触发器引发时要调用的函数。详见CREATE TRIGGER。
arguments传递给触发器函数的可选参数字符串。详见CREATE TRIGGER。
CREATE CONSTRAINT TRIGGER是PostgreSQL对SQL标准的一个扩展。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。