zoukankan      html  css  js  c++  java
  • Oracle 触发器

    转自慕课网:http://www.imooc.com/video/8744
    触发器的定义
    每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动的执行触发器中定义的语句序列
    (select语句没有触发器)

    在emp 表中插入到一条语句的时候触发一个触发器,触发器打印一句话”成功插入新员工

    Create trigger saynewemp //创建一个名为saynewemp的触发器
    after insert //在insert语句执行完之后执行该触发器
    on emp //该触发器作用在那个表上
    declare//程序中是否需要使用变量,不需要时省略
    begin
    dbms_output.put_line('成功插入新员工')
    end;
    /

    类似Java中的监听器


    应用场景
    1 复杂的安全性检查
    2 数据的确认
    3 数据库审计 //跟踪数据库中的数据的操作记录
    4 数据的备份和同步


    触发器类型
    1 语句级的触发器(没有for each row 语句则表示是语句级的触发器)
    在指定的操作之前或之后执行一次,不管这条语句影响了多少行


    2 行级触发器
    触发语句作用的每一条记录都被触发.在行级触发器中使用 :old 和 :new 伪记录变量,识别值的状态

    语句级的触发器针对的是表
    行级触发器针对的是行

    insert into emp10 select * from emp where deptno = 10;//将emp表中deptno=10的员工插入到emp10表中(假设可以查出三条记录)
    如果是语句触发器则上条SQL会出发一次触发器
    而行级触发器会被触发三次



    语法 []可有可无
    create [or replace] trigger 触发器名称 //创建一个触发器
    {before | after}
    {delete|insert|update[of 列名]}//update后跟列名表示只有update某一列时才会触发触发器
    on 表名
    [for each row[when(条件)]]
    plsql 块

     

  • 相关阅读:
    最长回文字符(需要补)
    无重复字符的最长子串
    两数之和——链表
    两个数之和
    android 动画基础绘——帧动画(三)
    android 动画基础绘——view 动画(二)[补]
    android 动画基础绘——view 动画
    全国疫情精准定点动态更新(.net core)
    桶排序
    计数排序
  • 原文地址:https://www.cnblogs.com/miye/p/7106609.html
Copyright © 2011-2022 走看看