• Oracle 触发器 trigger


      触发器:

      当用户登录/退出或者操作某个数据对象或者进行DDL(建表,建view)引起某个储存过程的值的变化,把这个隐含被调用的过程,称为触发器。

      语法

      CREATE OR REPLACE TRIGGER trigger_name

      {before|AFTER}

      {insert,delete,update of column,column}

      on table_name

      for each row --表示这是一个行级触发器

      when

      begin

      trigger_body;

      end;

      复制代码

      创建触发器

      create or replace trigger change_teacher

      before insert or update or delete on teachers

      begin

      if to_char(sysdba,'HH24') not berween '8' and '17' )

      THEN

      RAISE_APPLICATION_ERROR(-20005,'在非工作时间不能改变教师信息。');

      END IF;

      END change_teacher;

      复制代码

      获取新旧表记录对象

      create or replace trigger tri_salary

      before update on

      scott.emp

      for

      each row

      begin

      if :new.sal<:old.sal then

      dbms_output.put_line('工资不能低于原来工资');

      raise_application_error(-20005,'请不要修改');

      else

      dbms_output.put_line('原来是工资是'||:old.sal);

      end;

      复制代码

      禁用/启用触发器

      alter trigger 触发器名 disable(enable);

      复制代码

      删除触发器

      DROP TRIGGER salary_check;

      复制代码(编辑:雷林鹏 来源:网络)

  • 相关阅读:
    70个经典的 Shell 脚本面试问题
    shell 知识点
    awk
    chinaunix-索引资料
    一篇文章学会shell工具篇之sed
    linux shell 之if-------用if做判断
    Python shell对比
    TortoiseGit功能介绍
    gitlab图形化使用教程 (mtm推荐)
    gitlab 服务器的搭建与使用全过程(一)
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9485477.html
Copyright © 2020-2023  润新知