zoukankan      html  css  js  c++  java
  • Oracle 触发器的简单命令

    -- 创建触发器的基本命令
    create or replace trigger td after delete on ss
    begin
      dbms_output.put_line('删除成功');
    end;
    
    -- 创建触发器的基本命令
    create or replace trigger dd after insert on ss
    for each row
    --没有变量可去掉声明
    --declare
    begin
      dbms_output.put_line('成功插入数据');
    end;
    
    -- 场景-:复杂的安全性检查
    --raise--抛出的数据库的错误
    --raise_application_error:抛出的是应用程的错误  区间(-20000 ,29999)
    create or replace trigger dg before insert or delete or update on ss
    begin
      if to_char(sysdate,'day') in ('星期六','星期日') or
         to_number(to_char(sysdate,'hh24')) not between 9 and 18 
         then raise_application_error(-20001,'非工作时间禁止操作数据库');
      end if;
    end;
    
    
    --数据确认
    create or replace trigger fd before insert on scores
    for each row
    begin
      if :new.math < 0 
      or :new.chinese < 0
      or :new.english < 0
      then raise_application_error(-20002,'分数不能为零');
      end if;
    end;
    
    
    
    --实现审计功能
    create table info(
        infomation varchar2(45)
    );
    
    -- 不及格的学生全部信息插入info表
    create or replace trigger ch after update on st
    for each row
    begin
      if :new.math < 60 
      or :new.english < 60
      then insert into info values(:new.math||','||:new.english);
      end if;
    end;
    
    
    --数据备份和同步(此处用表演示)
    --创建备份表
    create table st_copy as select * from test1;
    
    create or replace trigger std after update on test1
    for each row
    begin
        --更新后表st的数据备份到表st_copy里面
        update st_copy set age=:new.age,name=:new.name where id = :new.id;
    end;
  • 相关阅读:
    分频
    加法器
    The best season is around you
    电影词汇
    DSP芯片和所有微处理器一样,以2的补码形式表示有符号数。
    乔布斯给妻子的结婚20周年情书
    webapp 处理表单
    看过戴旭之《中国面临被肢解的命运》之后
    转我在敏捷中国Open Space上发起的讨论主题——如何激励,用绩效考核吗?
    转QA不是QC,兼谈Lean、Kanban和TDD(上)
  • 原文地址:https://www.cnblogs.com/lantu1989/p/6183827.html
Copyright © 2011-2022 走看看