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(sysdate,'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; 
  • 相关阅读:
    常用数列
    sqrt
    树状数组
    hash
    P1102 A-B数对
    codevs 1795 金字塔 2
    P2296 寻找道路
    [USACO16JAN]子共七Subsequences Summing to Sevens
    P3397 地毯
    关于调用&&传址
  • 原文地址:https://www.cnblogs.com/walkwithmonth/p/8848146.html
Copyright © 2011-2022 走看看