文档详情

触发器使用教程和命名规范.doc

发布:2019-03-27约1.26万字共12页下载文档
文本预览下载声明
深圳市葛洛斯科技有限公司( HYPERLINK ) 联系电话:0755触发器使用教程和命名规范 属性 内容 文档名称: 触发器使用教程和命名规范 文档版本号: V1.0 文档编写日期: 2006-12-4 文档状态: 修订稿 作者: 李振国 发布日期: 2006-12-5 目 录 TOC \o 1-3 \h \z HYPERLINK \l _Toc153080508 触发器使用教程和命名规范 PAGEREF _Toc153080508 \h 1 HYPERLINK \l _Toc153080509 1,触发器简介 PAGEREF _Toc153080509 \h 1 HYPERLINK \l _Toc153080510 2,触发器示例 PAGEREF _Toc153080510 \h 2 HYPERLINK \l _Toc153080511 3,触发器语法和功能 PAGEREF _Toc153080511 \h 3 HYPERLINK \l _Toc153080512 4,例一:行级触发器之一 PAGEREF _Toc153080512 \h 4 HYPERLINK \l _Toc153080513 5,例二:行级触发器之二 PAGEREF _Toc153080513 \h 4 HYPERLINK \l _Toc153080514 6,例三:instead of触发器 PAGEREF _Toc153080514 \h 6 HYPERLINK \l _Toc153080515 7,例四:语句级触发器之一 PAGEREF _Toc153080515 \h 8 HYPERLINK \l _Toc153080516 8,例五:语句级触发器之二 PAGEREF _Toc153080516 \h 9 HYPERLINK \l _Toc153080517 9,例六:用包封装触发器代码 PAGEREF _Toc153080517 \h 10 HYPERLINK \l _Toc153080518 10,触发器命名规范 PAGEREF _Toc153080518 \h 11 1,触发器简介 触发器(Trigger)是数据库对象的一种,编码方式类似存储过程,与某张表(Table)相关联,当有DML语句对表进行操作时,可以引起触发器的执行,达到对插入记录一致性,正确性和规范性控制的目的。在当年C/S时代盛行的时候,由于客户端直接连接数据库,能保证数据库一致性的只有数据库本身,此时主键(Primary Key),外键(Foreign Key),约束(Constraint)和触发器成为必要的控制机制。而触发器的实现比较灵活,可编程性强,自然成为了最流行的控制机制。到了B/S时代,发展成4层架构,客户端不再能直接访问数据库,只有中间件才可以访问数据库。要控制数据库的一致性,既可以在中间件里控制,也可以在数据库端控制。很多的青睐Java的开发者,随之将数据库当成一个黑盒,把大多数的数据控制工作放在了Servlet中执行。这样做,不需要了解太多的数据库知识,也减少了数据库编程的复杂性,但同时增加了Servlet编程的工作量。从架构设计来看,中间件的功能是检查业务正确性和执行业务逻辑,如果把数据的一致性检查放到中间件去做,需要在所有涉及到数据写入的地方进行数据一致性检查。由于数据库访问相对于中间件来说是远程调用,要编写统一的数据一致性检查代码并非易事,一般采用在多个地方的增加类似的检查步骤。一旦一致性检查过程发生调整,势必导致多个地方的修改,不仅增加工作量,而且无法保证每个检查步骤的正确性。触发器的应用,应该放在关键的,多方发起的,高频访问的数据表上,过多使用触发器,会增加数据库负担,降低数据库性能。而放弃使用触发器,则会导致系统架构设计上的问题,影响系统的稳定性。 2,触发器示例 触发器代码类似存储过程,以PL/SQL脚本编写。下面是一个触发器的示例: 新建员工工资表salary create table SALARY ( EMPLOYEE_ID NUMBER, --员工ID MONTH VARCHAR2(6), --工资月份 AMOUNT NUMBER --工资金额 ) 创建与salary关联的触发器salary_trg_rai 1 Create or replace trigger salary_trg_rai 2 After insert on salary 3 For each row 4 declare 5 Begin 6 Dbms_output.put_line(‘员工ID:’ || :new.employee_id);
显示全部
相似文档