sql - 创建触发器时使用 'REFERENCING NEW AS NEW OLD AS OLD '

标签 sql oracle plsql triggers

我在不同的 table 上发现了两个类似的触发器。

create or replace TRIGGER "GM_OWNER".CHG_TYPE_TRG
AFTER INSERT OR UPDATE OR DELETE
ON CHG_TYPE
FOR EACH ROW
BEGIN
    If Inserting Then
       INSERT INTO CHG_TYPE_H


create or replace TRIGGER invoice_trg
AFTER INSERT  OR  DELETE  OR UPDATE
ON invoice
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
    If Inserting Then
       INSERT INTO INVOICE_H

两者都触发在与特定表相关的 Hist 表中插入或更新或删除数据。
当我们已经使用 :old 和 :new 来引用数据时,“REFERENCING NEW AS NEW OLD AS OLD”有什么用?

最佳答案

:new 和 :old 是用于处理旧记录和新记录值的默认名称。

您可以使用 REFERENCING NEW AS A OLD AS B 为它们命名其他名称。例如。

关于sql - 创建触发器时使用 'REFERENCING NEW AS NEW OLD AS OLD ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51285744/

相关文章:

sql - PostgreSQL:对预矢量化数据库执行余弦相似性搜索

sql - 如何删除 PostgreSQL 中的自定义数据类型?

java - 我必须使用 Java 生成 PL/SQL。大多数程序都是通用的。只有少数不断变化。怎么做?

performance - pl/sql存储过程…执行时间在哪里?

javascript - 我的表中有两个唯一的键。使用异常 DUP_VAL_ON_INDEX 时,我可以选择发生违规的特定(唯一)列吗?

sql - 触发器尚未执行但已创建

php - JOIN 在三个表上不起作用

sql - 如果两列之间的日期相交,在 Oracle 上创建唯一索引的最有效方法

java - 防止 JBoss 7 (Jeeves DBMS) 上 JNDI 数据源的 Oracle 连接自动提交

sql - oracle的索引可以加注释吗?