下载此文档

触发器使用教程与命名规范.docx


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
SQL触发器使用教程和命名规范
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     (‘员工ID:’|| :);
7     (‘工资月份:’|| :);
8     (‘工资:’|| :);
9     (‘触发器已被执行’);
10   End;
打开一个SQL Window窗口(使用PL/SQL Developer工具),或在sqlplus中输入:
Insert into salary(employee_id, month, amount) values(1, ‘’, 10000);
执行后可以在sqlplus中,或在SQL Window窗口的Output中见到
员工ID:1
工资月份:
工资:10000
触发器已执行
在代码的第一行,定义了数据库对象的类型是trigger,定义触发器的名称是salary_trg_rai
第二行说明了这是一个after触发器,在DML操作实施之后执行。紧接着的insert说明了这是一个针对insert操作的触发器,每个对该表进行的insert操作都会执行这个触发器。
第三行说明了这是一个针对行级的触发器,当插入的记录有n条时,在每一条插入操作时都会执行该触发器,总共执行n次。
Declare后面跟的是本地变量定义部分,如果没有本地变量定义,此部分可以为空
Begin和end括起来的代码,是触发器的执行部分,一般会对插入记录进行一致性检查,在本例中打印了插入的记录和“触发器已执行”。
其中:new对象表示了插入的记录,可以通过:
3,触发器语法和功能
触发器的语法如下
CREATE OR REPLACE TRIGGER trigger_name
<before | after | instead of> <insert | update | delete> ON table_name
[FOR EACH ROW]
WHEN (condition)
DECLARE
BEGIN

触发器使用教程与命名规范 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mkjafow
  • 文件大小38 KB
  • 时间2018-08-27