用于插入的 REFERENCING 子句

Insert 触发器的 REFERENCING 子句可以为列中要插入的值声明相关名称。

用于插入的 REFERENCING 子句
元素 描述 限制 语法
correlation 此处为满足在触发器操作中使用的新列值声明的名称( correlation.column 在此 CREATE TRIGGER 语句中必须唯一 标识符

correlation 是在执行触发语句后用于新列值的名称。其引用作用域仅限于 FOR EACH ROW 触发操作列表;请参阅相关的表操作。要使用相关名称,请在列名前面加上 correlation 名称和句号( . )。因此,如果 NEW correlation 名称是 post ,请将列 fname 的新值称为 post.fname

如果触发事件是 INSERT 语句,则使用 old correlation 名称作为限定符会产生错误,因为插入行前不存在值。要了解控制如何使用相关性的规则,请参阅在触发操作中使用相关名称。只有您定义了 FOR EACH ROW 触发操作,就可以使用 INSERT REFERENCING 子句。

以下示例说明 INSERT REFERENCING 子句的用法。对于插入到 table1 中的每一行,该示例将一行插入到 backup_table1 中。插入到 backup_table1col1col2 中的值是刚插入到 table1 中的值的精确副本。
CREATE TABLE table1 (col1 INT, col2 INT);
        CREATE TABLE backup_table1 (col1 INT, col2 INT);
        CREATE TRIGGER before_trig
        INSERT ON table1    REFERENCING NEW AS new
        FOR EACH ROW
        (
        INSERT INTO backup_table1 (col1, col2)
        VALUES (new.col1, new.col2)
        );

如以上示例所示,INSERT REFERENCING 子句使您能够引用触发操作生成的数据值。