zoukankan      html  css  js  c++  java
  • 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;

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

  • 相关阅读:
    jquery学习
    java--MVC引入JUnit单元测试
    BAE引擎发布到外网
    ORACLE1.26 综合:游标和动态SQL
    ORACLE1.25 动态SQL
    ORACLE1.24 银行系统操作和游标
    ORACLE1.23 loop,whild.for循环
    ORACLE1.23 if case when
    ORACLE1.22 %type %rowtype
    ORACLE1.21 PLSQL 01
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9485477.html
Copyright © 2011-2022 走看看