new.字段 oracle

2023年 8月 15日 58.5k 0

CREATE OR REPLACE TRIGGER update_salary
BEFORE INSERT OR UPDATE on employees
FOR EACH ROW
BEGIN
IF :new.salary

上面这个触发器是在employee表上定义的,它会在每次有新的一行被插入或者更新时被触发。在这个触发器里,我们使用了“:new”伪列来检查新插入或者更新的值是否小于0,如果小于0,就将其设定为0。

“new.”字段在触发器中的另一个常见用途是在insert语句中设置默认值。当执行insert语句时,Oracle首先会执行触发器,如果触发器中定义了“new.”字段,则会将其值设置为默认值。下面是一个示例:

CREATE OR REPLACE TRIGGER set_default_values
BEFORE INSERT on employees
FOR EACH ROW
BEGIN
IF :new.hire_date IS NULL THEN
:new.hire_date := SYSDATE;
END IF;
IF :new.salary IS NULL THEN
:new.salary := 5000;
END IF;
END;

上面这个触发器是在employee表上定义的,它会在每次插入一行数据时被触发。在这个触发器里,我们使用了“new.”字段来设置在insert语句中没有设置的默认值。例如,如果在insert语句中没有设置hire_date字段的值,则该字段将被设置为当前日期,如果没有设置salary字段的值,则该字段将被设置为5000。

总之,通过使用“new.”字段,我们可以在Oracle触发器中轻松地读取和修改正在插入或更新的数据。它还允许我们在insert语句中设置默认值。这种功能非常重要,因为它可以帮助我们更好地管理和优化我们的数据库。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论