第7节_触发器.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 7.4.2 系统触发器的创建 系统触发器创建的语法: CREATE [OR REPLACE] TRIGGER trigger_name [BEFORE|AFTER] trigger_event1 [OR trigger_event2…] [OF column_name] ON [DATABASE|SCHEMA] [WHEN trigger_condition] PL/SQL block * 7.4.2 系统触发器的创建 【例7-10】将每个用户的登录信息写入到temp_table表中。 CREATE OR REPLACE TRIGGER log_user_connection AFTER LOGON ON DATABASE BEGIN INSERT INTO edu.temp_table VALUES (user,sysdate); END log_user_connection; * 7.5 触发器的管理 修改触发器 CREATE OR REPLACE TRIGGER 禁用触发器 可以禁用某个触发器 ALTER TRIGGER trigger_name DISABLE; 可以禁用某个表对象上的所有触发器 ALTER TRIGGER table_name DISABLE ALL TRIGGER; * 7.5 触发器的管理 启用触发器 可以启用某个触发器 ALTER TRIGGER trigger_name ENABLE; 可以启用某个表对象上的所有触发器 ALTER TRIGGER table_name ENABLE ALL TRIGGER; 删除触发器 DROP TRIGGER trigger_name; 查看触发器语法错误 SHOW ERRORS 查看触发器源代码 查询数据字典USER_SOURCE中的TEXT属性 * * 第7章 触发器 * 7.1.1 触发器的概念与作用 触发器类似于存储过程和存储函数,都是有声明、执行和异常处理过程的PL/SQL有名块。 当触发事件发生时,由系统自动地隐式调用并执行触发器,而不能由应用程序显式地调用执行。 触发器不接受任何参数。 * 7.1.1 触发器的概念与作用 触发器主要作用是: 维护那些通过创建表时的声明约束不可能实现的复杂的完整性约束以及对数据库中特定事件进行监控和响应。。 利用触发器记录所进行的修改以及谁做了修改等信息对表进行审计。 当表被修改的时候,触动触发器自动给需要执行操作的程序发信号。 * 7.1.2 触发器的类型 DML触发器 替代触发器 系统触发器 * 7.1.3 触发器的组成 组成部分 描述 可能值 作用对象 触发器作用的对象 表,数据库,视图,模式 触发事件 触动触发器的数据操作类型 DML,DDL,数据库系统事件 触发时间 与触发事件的时间次序 BEFORE,AFTER 触发级别 触发器体被执行的次数 STATEMENT,ROW 触发条件 选择性执行触发事件的条件 TRUE,FALSE 触发器体 该触发器将要执行的动作 完整的 PL/SQL块 * 7.1.4 触发器与存储过程的区别 触发器 存储过程 当某类数据操纵DML语句发生时隐式地调用 从一个应用或过程中显式地调用 在触发器体内禁止使用COMMIT,ROLLBACK语句 在过程体内可以使用所有PL/SQL块中都能使用的SQL语句,包括COMMIT、ROLLBACK 不能接受参数输入 可以接受参数输入 * 7.2 DML触发器 建立在基本表上的触发器称为DML触发器。当对基本表进行数据的INSERT、UPDATE和DELETE操作时,会激发相应的DML触发器的执行。 * 7.2.1 DML触发器执行顺序 执行BEFORE语句级触发器。 对于受语句影响的每一行: 执行BEFORE行级触发器; 执行DML语句; 执行AFTER行级触发器。? 执行AFTER语句级触发器。 * 7.2.2 语句级触发器 通过CREATE TRIGGER语句创建一个语句级触发器,该触发器在一个数据操作语句发生时只触发一次。 * 7.2.2 语句级触发器 语句级触发器创建的语法 CREATE [OR REPLACE] TRIGGER trigger_name [BEFORE|AFTER] trigger_event1 [OR trigger_event2…] [OF column_name] ON table_name [WHEN trigger_condition] PL/SQL block * 7.2.2 语句级触发器 【例7-1】创建一个语句级的INSERT触发器。 CREATE OR

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档