zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    算法打基础——符号&递归解法
    算法打基础——算法基本分析
    最小生成树——Kruskal算法
    最小生成树——Prim算法
    物理DG主备库切换时遇到ORA-16139: media recovery required错误
    Dataguard 主库与备库的Service_Name 不一致时,如何配置客户端TNSName
    oracle 11g RAC 在Windows 7下安装
    关于存储大小的计量单位
    老家的亲戚关系
    Unity3D学习笔记——NGUI之UIInput
  • 原文地址:https://www.cnblogs.com/hziwei/p/14185546.html
Copyright © 2011-2022 走看看