`
aben_liu
  • 浏览: 26568 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

test7

阅读更多

6. 触发器的类型
a.DML触发器
    DML触发器是目前最广泛使用的一种触发器。DML触发器就是由DML语句激发的触发器
b.替代触发器
   替代触发器又叫instead_of触发器,执行一个替   代操作来代替触发器的操作。
c.系统事件触发器
   这种系统触发器在发生如数据库启动或关闭等系统事件时激发,而不是在执行DML语句时激发
d.DDL触发器
   DDL触发器是针对于对模式对象有影响的CREATE ,ALTER或DELETE等语句的
7.DML触发器的创建
CREATE [OR REPLACE] TRIGGER <触发器名>
BEFORE|AFTER
INSERT|DELETE|UPDATE OF <列名> ON <表名>
[FOR EACH ROW]
WHEN (<条件>)
<PL/SQL 程序块>
ON 子句中的名称识别与数据库触发器关联的数据库表
触发器事件指定了影响表的 SQL DML 语句 ( INSERT、  DELETE 或  UPDATE)
AFTER 指定了触发器在处理完成后触发
BEFORE 指定了触发器在处理完成前触发
默认情况下,触发器每个表触发一次
FOR EACH ROW 选项指定触发器每行触发一次
要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE
可以将 REPLACE 添加到 CREATE 语句以自动删除和重建触发器
8. 例如
CREATE TRIGGER flight_update
AFTER INSERT ON reservation
FOR EACH ROW
BEGIN
IF :new.class = ‘F’ THEN
语句 ;
ELSIF :new.class = ‘B’ THEN
语句 ;
END IF;
END;
前缀 : new 为一个引用最近更新列值的相关名
在数据库触发器内,可以引用用来更改行的 :new  和  :old 值
单独触发器也处理多个操作
使用条件谓词识别用于调用代码部分的语句的类型
9. IF Inserting THEN
语句 ;
END IF;
IF Updating THEN
语句 ;
END IF;
IF Deleting THEN
语句 ;
END IF;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics