zoukankan      html  css  js  c++  java
  • 06_触发器


     1 ***********************
     2         触发器
     3 ***********************
     4 --一个helloworld级别的触发器
     5 create or replace trigger hello_trigger
     6 after 
     7 update on employees
     8 --for each row
     9 begin 
    10     dbms_output.put_line('hello...');
    11     --dbms_output.put_line('old.salary:'|| :OLD.salary||',new.salary'||:NEW.salary);
    12 end;
    13 然后执行:update employees set salary = salary + 1000;
    14 
    15 --28. 触发器的 helloworld: 编写一个触发器, 在向 emp 表中插入记录时, 打印 'helloworld'
    16 
    17 create or replace trigger emp_trigger
    18 after 
    19 insert on emp
    20 for each row
    21 begin
    22        dbms_output.put_line('helloworld');
    23 end;
    24 
    25 --29. 行级触发器: 每更新 employees 表中的一条记录, 都会导致触发器执行
    26 
    27 create or replace trigger employees_trigger
    28 after 
    29 update on employees
    30 for each row
    31 begin
    32        dbms_output.put_line('修改了一条记录!');
    33 end;
    34 
    35 --语句级触发器: 一个 update/delete/insert 语句只使触发器执行一次
    36 
    37 create or replace trigger employees_trigger
    38 after 
    39 update on employees
    40 begin
    41        dbms_output.put_line('修改了一条记录!');
    42 end;
    43 
    44 --30. 使用 :new, :old 修饰符
    45 
    46 create or replace trigger employees_trigger
    47 after 
    48 update on employees
    49 for each row
    50 begin
    51        dbms_output.put_line('old salary: ' || :old.salary || ', new salary: ' || :new.salary);
    52 end;
    53 
    54 --31. 编写一个触发器, 在对 my_emp 记录进行删除的时候, 在 my_emp_bak 表中备份对应的记录
    55 
    56 1). 准备工作:
    57     create table my_emp as select employee_id id, last_name name, salary sal from employees
    58     create table my_emp_bak as select employee_id id, last_name name, salary sal from employees where 1 = 2
    59 
    60 2). 
    61 create or replace trigger bak_emp_trigger
    62        before delete on my_emp
    63        for each row
    64        
    65 begin
    66        insert into my_emp_bak values(:old.id, :old.name, :old.sal);
    67 end; 

  • 相关阅读:
    268. Missing Number(LeetCode)
    Win7 发生验证错误 要求的函数不受支持
    下拉选择框的选项过滤
    金额小写带逗号处理
    Java将CST的时间字符串转换成需要的日期格式字符串
    MyEclipse部署项目报"Add Deployment". Invalid Subscription Level
    无法解析的DNS服务地址
    选择文件进行上传
    让button居中显示的的标签
    Mysql启动服务提示系统找不到指定的文件
  • 原文地址:https://www.cnblogs.com/shici/p/14409744.html
Copyright © 2011-2022 走看看