ITPub博客

首页 > 数据库 > Oracle > 两个触发器的例子

两个触发器的例子

原创 Oracle 作者:rainytag 时间:2007-06-21 20:11:38 0 删除 编辑

为测试建立两张表:表db1与表db2;
触发器newjd所完成的功能是,只要向表db1插入一条数据就向表db2复制一条记录;
触发器trg所完成的功能是,当表bd2最大日期与最小日期相差40天时,清除较早的30天的记录;
代码如下

-----表1的触发器
CREATE TRIGGER newjd ON db1
FOR INSERT
AS
Declare @time1 datetime , @a char(10) , @b char(10)
Select @time1 = inserted.timetest , @a = inserted.a , @b = inserted.b
from db1,inserted
where db1.timetest = inserted.timetest
insert into db2 values(@time1,@a,@b)
go
-----表2的触发器
CREATE TRIGGER trg ON db2
for insert
as
declare @icount int , @time2 datetime
select @icount = datediff(d,min(timetest),max(timetest)) , @time2 = dateadd(dd,-10,max(timetest)) from DB2
if (@icount >= 40)
delete from db2
where timetest <= @time2
go
-----删除触发器
drop TRIGGER newjd --表1
drop TRIGGER trg --表2
--
---控制触发器
--
使用
alter table db1 enable trigger newjd
alter table db2 enable trigger trg
--屏蔽
alter table db1 disable trigger newjd
alter table db2 disable trigger trg
[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9650775/viewspace-920312/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: PC保养秘诀
请登录后发表评论 登录
全部评论

注册时间:2008-01-01

  • 博文量
    652
  • 访问量
    2207517