中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

Oracle 触发器 trigger

 山东大明消毒科技有限公司

下载贤集网APP入驻自媒体

触发器:

当用户登录/退出或者操作某个数据对象或者进行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;

复制代码


最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流