为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle触发器

  • 触发器 Create trigger saynewenp after insert on emp declare begin dbms_output.put_line('成功插入新员工'); end;
    查看全部
  • 例子: 1.下班时间不能插入数据库; 2.涨工资越涨越高,低了就不能修改; 3.把操作的时间、帐户等信息记录下来; 4.不同的数据表间进行同步备份
    查看全部
  • 插入前抛出错误,能不继续执行raise_application_error
    查看全部
  • 应用场景: 1 复杂的安全性检查 2 数据确认 3 实现审计的功能 4 完成数据的备份和同步
    查看全部
  • 触发器(trigger)
    查看全部
  • tigger语法格式
    查看全部
  • 基本语法
    查看全部
  • 触发器应用场景四: 数据的备份和同步 例子:当给员工涨完工资后,自动备份新的工资资料到备份表中 create or replace trigger trigger_sync_salary after update on emp for each row begin update emp_back set sal=:new.sal where empno=:new.empbo; end;
    查看全部
  • 触发器应用场景三: 数据的审计---》基于值得审计功能 例子:给员工涨工资,当涨后的薪水超过6000块时候,审计该员工的信息 创建表,用于保存审计信息 create table audit_info( information varchar2(200) ); create or replace trigger do_audit_emp_salary after update on emp for each row begin if :new.sal>6000 then insert into audit_info values(:new.empno||' '||:new.ename||' '||:new.sal); end if; end;
    查看全部
  • 行级触发器针对的是记录,语句级触发器针对的是表。 案例一不允许在非工作时间插入新员工,不论是插入一条记录还是多条记录,触发器中的子程序都只需要执行一次,如果不符合条件,则不允许对整个表进行操作,即针对整个表只需要执行一次子程序,所以这里用的是语句级触发器; 案例二涨后的工资不能低于涨前的工资,在对每一个员工涨工资时都需要执行触发器中的子程序,来判断是否涨后的工资低于涨前的工资,即针对每条记录都要执行子程序,所以这里用的是行级触发器。 在行级触发器中使用:old和:new伪记录变量,识别值的状态。 :old表示操作这行记录前这行记录的值; :new表示操作这行记录之后这行记录的值。 比如 :new.sal可以表示操作这行记录后该行中sal的值。
    查看全部
  • 触发器案例二: 数据的确认 涨工资不能越涨越少 :old 表示操作该行之前这一行的值 :new 表示操作该行之后这一行的值 create or replace trigger check_salary before update on emp for each row begin if :new.sal<:odl.sal then raise_application_error(-20002,'涨后薪水不能少于涨前薪水。 涨后薪水为:'||:new.sal ||'涨前的薪水:'||:old.sal); end if; end;
    查看全部
  • 触发器案例一 : 复杂的安全性检查 例如禁止在非工作时间插入数据 /** 1.周末: to_char(sysdate,'day') in ('星期六',‘星期日’) 2.上班前,下班后: to_number(to_char(sysdate,'hh24')) not between 9 and 18 / create or replace trigger securityemp before insert on emp 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;
    查看全部
  • 触发器应用案例一:禁止非工作期间insert新员工 raise_application_error用于在plsql使用程序中自定义不正确消息。 该异常只好在数据库端的子程序(流程、函数、包、触发器)中运用,而无法在匿名块和客户端的子程序中运用。 语法为raise_application_error(error_number,message[,[truefalse]]); 其中 error_number用于定义不正确号,该不正确号必须在-20000到-20999之间的负整数; message用于指定不正确消息,并且该消息的长度无法超过2048字节;
    查看全部
  • 触发器案例一:复杂的安全性检查 禁止在非工作时间插入数据 select sysdate from dual; SYSDATE select to_char(sysdate,'day') from dual;
    查看全部
  • 行级触发器
    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程前,需要掌握PL/SQL语法。对PL/SQL语法不了解的小伙伴请移步课程《Oracle数据库开发必备利器之PL/SQL基础》。
老师告诉你能学到什么?
1、掌握触发器的概念和语法 2、通过案例的学习,能够独立编写触发器

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!