• oracle 触发器


    触发器简介

    • 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作。ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等。所以触发器常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,或用来监视对数据库的各种操作,实现审计的功能。

    创建触发器的一般语法

    CREATE [OR REPLACE] TRIGGER trigger_name
    {BEFORE | AFTER }
    {INSERT | DELETE | UPDATE [OF column [, column …]]}
    [OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
    ON [schema.]table_name | [schema.]view_name 
    [REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
    [FOR EACH ROW ]
    [WHEN condition]
    PL/SQL_BLOCK | CALL procedure_name;
    

    案例

    CREATE OR REPLACE TRIGGER insert_into_log 
       BEFORE INSERT --指定触发时机为插入操作前触发
       ON scott.emp 
       FOR EACH ROW   --说明创建的是行级触发器 
    BEGIN
       -- :new 和 :old 分别代表新插入的数据和历史数据
       -- 将插入前数据插入到日志记录表 log,以供监督使用。
       INSERT INTO log (ID, EQUIP_IMEI, OPT_TYPE, OPT_TIME, OPT_RESULT, CREATE_BY_ID, CREATE_TIME, MODIFIED_BY_ID, MODIFY_TIME)
    				 VALUES( :NEW.LOG_ID, :NEW.EQUIP_IMEI, :NEW.OPT_TYPE , :NEW.OPT_TIME,:NEW.OPT_RESULT, :NEW.CREATE_BY_ID, :NEW.CREATE_TIME, :NEW.MODIFIED_BY_ID, :NEW.MODIFY_TIME);
    END;
    
  • 相关阅读:
    HDU 2444 The Accomodation of Students (判断是否是二分图,然后求最大匹配)
    HDU 1045 Fire Net (二分匹配)
    Leangoo如何颠覆传统项目管理软件?
    团队协作神器:Leangoo
    Leangoo-让工作更简单
    leangoo 轻量级项目协作和列表管理平台
    团队协作中的“贵族”leangoo
    使用leangoo实现多泳道任务看板
    项目管理工具到底应该为谁服务?
    《精益创业实战》读书笔记
  • 原文地址:https://www.cnblogs.com/hziwei/p/14185546.html
Copyright © 2020-2023  润新知