专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle触发器的简单例子 oracle中触发器分为哪几种

ins518 2024-10-13 06:01:18 技术文章 12 ℃ 0 评论

--建立一个触发器, 当职工表 emp 表被删除一条记录时,把被删除记录写到职工表删除日志表中去。

--创建历史表

create table myemp_his as select * from myemp where 1=2;

--创建删除触发器

create or replace trigger myemp_delete_trig

after delete

on myemp

for each row

begin

insert into myemp_his

values

(:old.empno,:old.ename,:old.job,:old.mgr,

:old.hiredate,:old.sal,:old.comm,:old.deptno,:old.sal2);

end;

--创建更新触发器,更新myemp表中的数据时,需要保存到myemp_his表中两条数据,更新前的数据和更新后的数据

create or replace trigger myemp_update_trig

after update of sal

on myemp

for each row

begin

--更新前的数据

insert into myemp_his

values

(:old.empno,:old.ename,:old.job,:old.mgr,

:old.hiredate,:old.sal,:old.comm,:old.deptno,:old.sal2,'更新前',sysdate);

--更新后的数据

insert into myemp_his

values

(:new.empno,:new.ename,:new.job,:new.mgr,

:new.hiredate,:new.sal,:new.comm,:new.deptno,:new.sal2,'更新后',sysdate);

end;

--更新myemp表中的deptno时,同时更新dept表中的修改时间

CREATE OR REPLACE TRIGGER myemp_deptno_trig

BEFORE UPDATE

of deptno --of后表示哪些列进行触发

ON myemp

for each row

BEGIN

update dept set mdate = sysdate where deptno = :new.deptno;

END;


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表