【Oracle学习】之 触发器(Trigger)
发布时间:2020-12-12 14:52:28 所属栏目:百科 来源:网络整理
导读:oracle文档: https://docs.oracle.com/cloud/latest/db112/LNPLS/triggers.htm#LNPLS750 概述: 触发器是一种特殊类型的存储过程,编译后存储在数据库服务器中,当特定事件发生时,由系统自动调用执行,而不能由应用程序显式地调用执行。此外,触发器不接受
一、触发器的类型(1) DML 触发器:①基于表(TABLE):(有BEFORE、AFTER)Ⅰ语句级触发器:只触发一次(不可使用new,old缓存)Ⅱ 行级触发器:每一行(for each row)②instead of:替代触发器替代数据库视图上的DML操作。(2) 系统触发器:①数据库级(Database):②模式级(Schema):替代触发器替代数据库视图上的DML操作。(DDL、DCL)二 、DML 触发器操作//语法
CREATE [OR REPLACE] TRIGGER trigger_name BEFRORE|AFTER triggering_event [OF column_name] ON table_name [FOR EACH ROW] [WHEN trigger_condition] DECLARE BEGIN EXCEPTION END [trigger_name];
(1)语句级触发器 与 行级触发器create or replace trigger tr1 after delete on test2_student [for each row] begin if (deleting) then DBMS_OUTPUT.PUT_LINE('Deleting');
END IF;
end;
(2)Before 和 After注意:这两个只能用表,不能用于视图after :在操作表之后触发(只能读取,不能修改)before:操作表之前被触发。(3)缓存:new 和 old (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |