触发器和权限管理.ppt
《触发器和权限管理.ppt》由会员分享,可在线阅读,更多相关《触发器和权限管理.ppt(25页珍藏版)》请在三一办公上搜索。
1、oracle,触发器和权限管理,触发器,触发器是当特定事件出现时自动执行的存储过程特定事件可以是执行更新的DML语句和DDL语句触发器不能被显式调用触发器的功能:自动生成数据自定义复杂的安全权限提供审计和日志记录启用复杂的业务逻辑,创建触发器的语法,CREATE OR REPLACE TRIGGER trigger_nameAFTER|BEFORE|INSTEAD OFINSERT OR UPDATE OF column_list OR DELETEON table_or_view_nameREFERENCING OLD AS old/NEW AS newFOR EACH ROWWHEN(co
2、ndition)pl/sql_block;,触发器的组成部分-1,触发器由三部分组成:触发器语句(事件)定义激活触发器的 DML 事件和 DDL 事件触发器限制执行触发器的条件,该条件必须为真才能激活触发器触发器操作(主体)包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运行,触发器的组成部分-2,SQL CREATE OR REPLACE TRIGGER trig_salAFTER UPDATE OF empsal ON salary_records,触发器语句,为 salary_records 表创建 trig-sal 触发器,在更新 emp_sal 列之后激活触发
3、器,触发器限制,SQL FOR EACH ROWWHEN(NEW.empsalOLD.empsal)DECLARESal_diff NUMBER;,只有在WHEN子句中的条件得到满足时,才激活trig_sal 触发器,触发器操作,SQL BEGIN sal_diff:=:NEW.empsal-:OLD.empsal;DBMS_OUTPUT.PUT_LINE(工资差额:sal_diff);END;,如果WHEN子句中的条件得到满足,将执行BEGIN 块中的代码,触发器的组成部分-3,Oracle 数据库,更新,表,保存更新,激活,触发器,AFTER 触发器的工作原理,BEFORE 触发器的工作原
4、理,更新,表,激活,触发器,保存更新,Oracle 数据库,创建触发器,CREATE OR REPLACE TRIGGER aiu_itemfileAFTER INSERTON itemfileFOR EACH ROWBEGIN IF(:NEW.qty_hand=0)THEN DBMS_OUTPUT.PUT_LINE(警告:已插入记录,但数量为零);ELSE DBMS_OUTPUT.PUT_LINE(已插入记录);END IF;END;/,触发器类型-1,触发器的类型有:,触发器类型,模式(DDL)触发器,DML触发器,数据库级触发器,语句级触发器,行级触发器,INSTEAD OF触发器,触发
5、器类型-2,DDL 触发器数据库级触发器DML 触发器语句级触发器行级触发器INSTEAD OF 触发器,在模式中执行 DDL 语句时执行,在发生打开、关闭、登录和退出数据库等系统事件时执行,在对表或视图执行DML语句时执行,无论受影响的行数是多少,都只执行一次,对DML语句修改的每个行执行一次,用于用户不能直接使用 DML 语句修改的视图,触发器类型-3,行级触发器,SQL CREATE TABLE TEST_TRG(ID NUMBER,NAME VARCHAR2(20);SQL CREATE SEQUENCE SEQ_TEST;SQL CREATE OR REPLACE TRIGGER B
6、I_TEST_TRGBEFORE INSERT OR UPDATE OF IDON TEST_TRGFOR EACH ROWBEGIN IF INSERTING THEN SELECT SEQ_TEST.NEXTVAL INTO:NEW.ID FROM DUAL;ELSE RAISE_APPLICATION_ERROR(-20020,不允许更新ID值!);END IF;END;/,触发器类型-4,SQL CREATE OR REPLACE TRIGGER trgdemo AFTER INSERT OR UPDATE OR DELETE ON order_masterBEGIN IF UPDAT
7、ING THEN DBMS_OUTPUT.PUT_LINE(已更新 ORDER_MASTER 中的数据);ELSIF DELETING THEN DBMS_OUTPUT.PUT_LINE(已删除 ORDER_MASTER 中的数据);ELSIF INSERTING THEN DBMS_OUTPUT.PUT_LINE(已在 ORDER_MASTER 中插入数据);END IF;END;/,语句级触发器,触发器类型-5,SQL CREATE OR REPLACE TRIGGER upd_ord_view INSTEAD OF UPDATE ON ord_view FOR EACH ROW BEGI
8、N UPDATE order_master SET vencode=:NEW.vencode WHERE orderno=:NEW.orderno;DBMS_OUTPUT.PUT_LINE(已激活触发器);END;/,INSTEAD OF 触发器,触发器类型-6,SQL CREATE TABLE dropped_obj(obj_name VARCHAR2(30),obj_type VARCHAR2(20),drop_date DATE);SQL CREATE OR REPLACE TRIGGER log_drop_objAFTER DROP ON SCHEMABEGIN INSERT INTO
9、 dropped_obj VALUES(ORA_DICT_OBJ_NAME,ORA_DICT_OBJ_TYPE,SYSDATE);END;/,模式触发器,启用和禁用触发器删除触发器,启用、禁用和删除触发器,SQL ALTER TRIGGER aiu_itemfile DISABLE;,SQL ALTER TRIGGER aiu_itemfile ENABLE;,SQL DROP TRIGGER aiu_itemfile;,查看有关触发器的信息,SQL SELECT TRIGGER_NAME FROM USER_TRIGGERSWHERE TABLE_NAME=EMP;SQL SELECT TR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 触发器 权限 管理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6152545.html