CREATE CONSTRAINT TRIGGER

Name

CREATE CONSTRAINT TRIGGER -- 定义一个新的约束触发器

Synopsis

CREATE CONSTRAINT TRIGGER name
    AFTER event [ OR ... ]
    ON table_name
    [ FROM referenced_table_name ]
    { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } }
    FOR EACH ROW
    [ WHEN ( condition ) ]
    EXECUTE PROCEDURE function_name ( arguments )

描述

CREATE CONSTRAINT TRIGGER创建constraint trigger。 这同样是作为常规的触发器,除了触发发射的定时是可以通过使用 SET CONSTRAINTS调整的。约束触发器必须是AFTER ROW触发器。 这些触发器要么在语句末触发来引起触发事件,要么在包含事务结束时触发;对于后者会被成为 递延。一个挂起的递延触发器触发可以通过SET CONSTRAINTS命令 强制迅速发生。

参数

name

约束触发器的名称。这也是通过SET CONSTRAINTS调整触发器的行为 时要使用的名称。该名称不能有模式修饰—触发器继承了表的模式。

event

触发该触发器的事件。是INSERTUPDATEDELETE之一,可以使用OR指定多个值。

table_name

发生触发器事件的表名称(可能有模式修饰)

referenced_table_name

被约束引用的另一个表的名称(可能有模式修饰)。此选项用于外键约束和通常不建议使用。

DEFERRABLE
NOT DEFERRABLE
INITIALLY IMMEDIATE
INITIALLY DEFERRED

触发器的缺省时序。参见CREATE TABLE文档以获取这些约束选项的细节。

condition

决定触发函数是否会真正被执行的布尔表达式。这与CREATE TRIGGER 中表现得相同。特别注意:WHEN条件的评估不会推迟,但是会在行 更新操作完成后迅速发生。如果条件不估计true那么触发器不会为 延迟执行排队。

function_name

函数在触发器被触发时被调用。参阅CREATE TRIGGER获取更多 详细的信息。

arguments

传递给触发函数的可选参数字符串。参阅CREATE TRIGGER 获取更多详细信息。

兼容性

CREATE CONSTRAINT TRIGGERPostgreSQLSQL标准基础上的扩展。

又见

CREATE TRIGGER, DROP TRIGGER, SET CONSTRAINTS