2 qq 21741673 qq_21741673 于 2016.04.26 20:03 提问

oracle触发器定时执行

请高手帮忙写一个触发器,当表中插入数据时,一段时间后(3分钟或者5分钟)自动
修改表中最新数据(有插入时间字段)的某个字段为false或者为1;

3个回答

baidu_23086307
baidu_23086307   2016.04.26 20:18

等我回实验室,现在在上课

CSDNXIAOD
CSDNXIAOD   2016.04.26 20:12

在Oracle的触发器中执行DDL语句
oracle 一个表上的多个触发器的执行顺序
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

huangwenkangz
huangwenkangz   2016.04.29 13:49

触发器是针对表格中有数据新增修改和删除时触发的程序,那只是一瞬间的事情,oracle有一个dbms_lock.sleep(10);休眠功能,
但是如果一次性新增了100笔数据,那这100程序都在运行,而且坚持运行3分钟,这无形中加重了数据库的负担。
建议:写一个procedure,新建一个job,频率是3分钟,3分钟运行一次这个procedure,去修改新插入的数据标示栏位
create or replace procedure xxx_proc as
begin
update table set flag = '1' where flag <> '1';

end;
至于你说的最新数据,如果每次都更新标示为1,那没标示的数据就是最新的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!