zoukankan      html  css  js  c++  java
  • oracle 10g 学习之触发器(13)

    真实使用场景:数据备份

    1. 触发器的 helloworld: 编写一个触发器, 在向 emp 表中插入记录时, 打印 'helloworld'

    create or replace trigger emp_trigger

           after insert on emp

           for each row

    begin

           dbms_output.put_line('helloworld');

    end;

    2. 行级触发器: 每更新 employees 表中的一条记录, 都会导致触发器执行

    create or replace trigger employees_trigger

           after update on employees

           for each row--行级触发器

    begin

           dbms_output.put_line('修改了一条记录!');

    end;

    3.语句级触发器: 一个 update 语句只使触发器执行一次

    create or replace trigger employees_trigger

           after update on employees

    begin

           dbms_output.put_line('修改了一条记录!');

    end;

    4. 使用 :new, :old 修饰符

    create or replace trigger employees_trigger

           after update on employees

           for each row

    begin

           dbms_output.put_line('old salary: ' || :old.salary || ', new salary: ' || :new.salary);

    end;

    5. 编写一个触发器, 在对 my_emp 记录进行删除的时候, 在 my_emp_bak 表中备份对应的记录

    1). 准备工作:

             create table my_emp as select employee_id id, last_name name, salary sal from employees

             create table my_emp_bak as select employee_id id, last_name name, salary sal from employees where 1 = 2

    2).

    create or replace trigger bak_emp_trigger

           before delete

           on my_emp

           for each row

          

    begin

           insert into my_emp_bak values(:old.id, :old.name, :old.sal);

    end;

  • 相关阅读:
    springboot 上传文件过大的500异常
    java OSS批量下载,并压缩为ZIP
    Java 对象转xml (dom 4j)
    windows 10 64位机器上 安装部署
    Java 读取excel 文件流
    关于Java 去除空格,换行的代码
    ORACLE 查询近一天,近半小时内的数据
    【转】C#(ASP.Net)获取当前路径的方法集合
    【转】NumPy-快速处理数据
    【转】Eclipse 常用快捷键 (动画讲解)
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/3470214.html
Copyright © 2011-2022 走看看