Insert 触发器的 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 子句。
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 子句使您能够引用触发操作生成的数据值。