Oracle Before INSERT/UPDATE/DELETE 触发器

17 Mar 2025 | 阅读 2 分钟

此语句指定 Oracle 将在执行 INSERT/UPDATE 或 DELETE 操作之前触发此触发器。

语法

参数

OR REPLACE: 这是一个可选参数。如果触发器已存在,则用于重新创建触发器。 它允许您更改触发器定义,而无需使用 DROP TRIGGER 语句。

trigger_name: 它指定您要创建的触发器的名称。

BEFORE INSERT or UPDATE or DELETE: 它指定触发器将在执行 INSERT 或 UPDATE 或 DELETE 操作之前触发。

table_name: 它指定在其上执行触发器操作的表的名称。

局限性

  • BEFORE 触发器不能在视图上创建。
  • 您无法更新 OLD 值。
  • 您只能更新 NEW 值。

Oracle BEFORE 触发器示例

假设您有一个包含以下参数的 "suppliers" 表。

您可以使用以下 CREATE TRIGGER 查询来创建 BEFORE INSERT 或 UPDATE 或 DELETE 触发器

这里的触发器名称是 "SUPPLIERS_T1",它在表 "suppliers" 上执行 insert 或 update 或 delete 操作之前触发。

Oracle Before Trigger