Oracle 触发后
此语句指定Oracle在执行INSERT/UPDATE或DELETE操作后
AFTER 后将触发该触发器。
语法
CREATE [ OR REPLACE ] TRIGGER trigger_name
AFTER 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: : 它指定要创建的触发器的名称。
在INSERT或UPDATE或DELETE之后: : 它指定在执行INSERT或UPDATE或DELETE操作之后将触发触发器。
table_name: : 它指定要在其上执行触发操作的表的名称。
限制
无法在视图上创建AFTER触发器。
您无法更新OLD值。
您只能更新新值。
Oracle AFTER触发器示例
考虑一下,您有一个带有以下参数的"SUPPLIERS"表。
CREATE TABLE "SUPPLIERS"
( "SUPPLIER_ID" NUMBER,
"SUPPLIER_NAME" VARCHAR2(4000),
"SUPPLIER_ADDRESS" VARCHAR2(4000)
)
/
您可以使用以下
CREATE TRIGGER查询创建AFTER INSERT或UPDATE或DELETE触发器:
CREATE OR REPLACE TRIGGER "SUPPLIERS_T2"
AFTER
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_T2" ENABLE
/
在此,触发器名称为" SUPPLIERS_T2",并且在对表"SUPPLIERS"执行插入,更新或删除操作后将其触发。
