zoukankan      html  css  js  c++  java
  • oracle之触发器

    触发器可以看做一种“特殊”的存储过程,它定义了一些与数据库相关事件(如INSERT,UPDATE,CREATE等事件)发生时应执行的“功能代码块”,常用与管理复杂的完整性约束,或监控对表的修改,甚至可以实现对数据的审计功能。
    触发器语法格式:

    create [or replace] trigger tri_name
        [before | after | instead of] tri_event
        on table_name | view_name | user_name | db_name
          [for each row] [where tri_condition]
    begin
        plsql_sentences;
    end tri_name;
    /
    

    根据触发器的触发事件和触发器的执行情况,将Oracle的触发器分为以下5中:

    • 行级触发器
    • 语句触发器
    • 替换触发器
    • 用户事件触发器
    • 系统事件触发器

    语句触发器:
    实例:使用触发器,在scott模式下针对dept表的各种操作进行监控,为此首先需要创建一个日志表dept_log,它用于存储对dept表的各种数据操作信息,比如操作种类(插入,修改..)、操作时间等。

    1 创建dept_log
    create table dept_log(
        operate_tag varchar2(10),
        operate_time date
    )
    
    2 创建触发器
    create or replace trigger tri_dept
     before insert or update or delete on dept
    declare var_tag varchar2(10);
    begin
      if inserting than var_tag := '插入';
      elsif updating than var_tag := '修改';
      elsif deleting than var_tag := '删除';
      end if;
      insert into dept_log values(var_tag,sysdate);
    end tri_dept;
    /
    

    未完----

    参考
    《Oracle从入门到精通》--明日科技 编著

  • 相关阅读:
    关于excel导入、导出(POI)
    关于上传图片和显示
    关于sql连接查询(内联、左联、右联、全联)
    关于面试问题
    关于excel导出
    响应式布局和自适应布局的不同
    关于时间范围查询
    HDU 6166 Senior Pan(二进制分组+最短路)
    HUAS 2017暑假第六周比赛-题解
    AtCoder Regular Contest 081
  • 原文地址:https://www.cnblogs.com/westward/p/7145204.html
Copyright © 2011-2022 走看看