第20章 触发器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第20章 触发器.ppt

触发器 概述 触发器类似于Oracle的PL/SQL存储过程,但是它不能被显示调用,而是由数据库服务器维护,在特定事件发生时由Oracle数据库调用,触发器使用PL/SQL语言编写保存在数据库服务器上。Oracle提供了在DML操作和DDL操作之前和之后的触发器,还提供了当数据库关闭与启动或者用户登录与退出的触发器,这些触发器极大的丰富了DBA执行和审计与安全或完整性关联的管理任务 触发器 如何创建触发器 创建触发器的语法为 CREATE TRIGGER trigger_name BEFORE/AFTER DELETE [UPDATE,INSERT,SHUTDOWN……] ON object_name Trigger_SQL_PL/SQL_body 我们创建一个触发器。 该触发器实现对SCOTT模式下的表EMP的操作记录,即DML操作的记录,当发生任何DML操作时,都在标准输出装置打印一条信息。当然这里可以是更复杂的记录,如记录用户删除的数据,记录更新前的原始值,或者插入数据之前的原始值等,或者记录用户DML操作的次数等,总之读者可以根据自己的需求设置。 create or replace trigger delete_emp_trigger before delete on emp for each row begin dbms_output.put_line(deleting......); end delete_emp_trigger; / 触发器 如何创建触发器 编译触发器 SQL@f:\trigger_name.sql; 通过特定行为激发触发器行为。 SQLdelete from emp where…… 触发器 触发器分类 基于DML操作的触发器 基于DDL操作的触发器 。 基于数据库级操作的触发器 触发器 触发器分类 基于DML操作的触发器 触发器可以在当用户对一个表的INSERT、UPDATE和DELETE操作时触发行为,也可以实现对表的每一行进行DML操作时,实现触发器行为,此时需要在触发器的定义中使用FOR EACH ROW语句说明操作的每一行都触发某种触发器行为。 创建该类触发器的语法格式如下所示。 CREATE [OR REPLACE] TRIGGER trigger_name [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON table_name [FOR EACH ROW [WHEN cond]] Trigger_SQL_Statements; 触发器 触发器分类 基于DDL操作的触发器 DDL操作如CREATE、ALTER和DROP,在执行这些操作前或者之后实现触发器行为,如用户删除了一个表,此时需要一个触发器来记录该用户删除的表的信息和该用户名作为用户操作日志,这也是此类触发器的典型应用。 创建该类触发器的语法格式如下所示。 CREATE [OR REPLACE] TRIGGER trigger_name [BEFORE|AFTER] [CREATE|ALTER|DROP] ON database_name [WHEN cond]] Trigger_SQL_Statements; 触发器 触发器分类 基于数据库级操作的触发器 数据库级操作是指STARTUP、SHUTDOWN、LOGON、LOGOFF等数据库相关的操作,如用户登录时记录该用户登录时间和用户名,而当用户退出时,也记录该用户的退出时间等。对于数据库启动STARTUP和数据库关闭SHUTDOWN等同样可以编写符合业务需求的触发器。 创建该类触发器的语法格式如下所示。 CREATE [OR REPLACE] TRIGGER trigger_name [BEFORE|AFTER] [START|SHUTDOWN|LOGON|LOGOFF] ON database_name [WHEN cond]] Trigger_SQL_Statements; 触发器 创建触发器的权限 查看特定用户的权限。 SQL select * 2 from dba_sys_privs 3 where grantee = SCOTT 4* and privilege like CREATE% 授权特定用户CREATE ANY TRIGGER的权利。 SQL GRANT create any trigger to SCOTT; 触发器 创建审核触发器 具有实际意义的触发器,即审核触发器,当用户操作一个重要的表时,如插入数据和更新数据,我们希望记录该用户的名称和更改时间等信息,以备将来审核使用。

文档评论(0)

zhoujiahao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档