• (11)oracle触发器


    触发器是特殊的存储过程。

    每当一个特定的数据操作语句(inster,update,delete)在指定的表上触发时,Oracle自动的地执行触发器中定义的语句序列。

    create trigger 触发器名
    (brfore、after) insert(update、delete)
    on 表名
    declare
    begin
    .
    .
    .
    end;
    /

    更新指定列触发

    create trigger 触发器名
    (brfore、after) update 列明
    on 表名
    for each row  [where条件 ]--按行触发
    declare
    begin
    .
    .
    .
    end;
    /

    语句级触发器:在之指定的语句操作前或后执行一次,不管语句影响多少行

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

    例子

    1.复杂得安全性检查

    禁止非工作时间插入数据到员工表

    2.数据确认

    create or replace trigger a
    before update
    on emp
    for each row
    begin
    if :old.sal>:new.sal
    raise_applcation_error(-20002,'涨后的薪水不能小于涨前的薪水')
    end if;
    end;
    /

    3.数据库审计

    4.数据库的同步和备份

    创建自增序列和触发器

    DROP SEQUENCE SEQ_TITLE;
    DROP TRIGGER TR_TITLE;
    
    -- 
    -- SEQUENCE: SEQ_TITLE 
    --
    
    CREATE SEQUENCE SEQ_TITLE
        START WITH 1
        INCREMENT BY 1
        NOMINVALUE
        NOMAXVALUE
       CACHE 20
       NOORDER;
    
    -- 
    -- TRIGGER: TR_TITLE 
    --
    
    create or  replace trigger TR_TITLE
    
    before insert on T_TITLE
    
    for each row
    
    begin
    
    select SEQ_TITLE.nextval into :new.TITLE_ID from dual;
    
    end;
    /
  • 相关阅读:
    js:语言精髓笔记1--标识符与基本类型
    ember.js:使用笔记4 数组数据的分组显示
    ember.js:使用笔记3 活用{{bind-attr}}
    ember.js:使用笔记2-数据删除与存储
    ember.js:使用笔记1-数组数据统一显示
    工具:使用jekyll生成静态网站
    css:删除:×的效果
    js写随机一个颜色
    回调函数的使用
    jquery获取select标签的选中元素
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/5976868.html
Copyright © 2020-2023  润新知