个性化阅读
专注于IT技术分析

触发器在插入/更新/删除之前触发

本文概述

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

句法

CREATE [ OR REPLACE ] TRIGGER trigger_name
BEFORE INSERT or UPDATE or DELETE
 ON table_name
  [ FOR EACH ROW ]
DECLARE
   -- variable declarations
BEGIN
   -- trigger code
EXCEPTION
   WHEN ...
   -- exception handling
END;

参数

或替换:它是一个可选参数。如果触发器已经存在, 则用于重新创建触发器。它使你无需使用DROP TRIGGER语句即可更改触发器定义。

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

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

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

局限性

  • 无法在视图上创建触发器之前。
  • 你无法更新OLD值。
  • 你只能更新NEW值。

Oracle触发前示例

考虑一下, 你有一个带有以下参数的”供应商”表。

CREATE TABLE  "SUPPLIERS" 
   (	"SUPPLIER_ID" NUMBER, "SUPPLIER_NAME" VARCHAR2(4000), "SUPPLIER_ADDRESS" VARCHAR2(4000)
   )
/

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

CREATE OR REPLACE TRIGGER  "SUPPLIERS_T1" 
BEFORE
insert or update or delete on "SUPPLIERS"
for each row
begin
when the person performs insert/update/delete operations into the table.
end;
/
ALTER TRIGGER  "SUPPLIERS_T1" ENABLE
/

此处的触发器名称为” SUPPLIERS_T1″, 并且在对表”供应商”执行插入, 更新或删除操作之前将其触发。

Oracle触发之前
赞(0)
未经允许不得转载:srcmini » 触发器在插入/更新/删除之前触发

评论 抢沙发

评论前必须登录!