Oracle BEFORE Trigger
一、Oracle BEFORE Trigger 语法
此语句指定 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;
参数说明:
- OR REPLACE:它是一个可选参数。如果触发器已经存在,它用于重新创建触发器。它有助于您在不使用 DROP TRIGGER 语句的情况下更改触发器定义。
- trigger_name:它指定要创建的触发器的名称。
- BEFORE INSERT 或 UPDATE 或 DELETE:它指定触发器将在执行 INSERT 或 UPDATE 或 DELETE 操作之前触发。
- table_name:它指定正在对其执行触发操作的表的名称。
限制
- 无法在视图上创建 BEFORE 触发器。
- 您无法更新 OLD 值。
- 您只能更新新值。
二、Oracle BEFORE Trigger 示例
考虑一下,您有一个包含以下参数的“suppliers”表。
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”,它在对表“suppliers”执行插入、更新或删除操作之前被触发。
热门文章
优秀文章