首页 新闻 会员 周边

mysql问题,产生数据十分钟后的数据库操作

0
悬赏园豆:50 [已关闭问题] 关闭于 2013-01-25 11:17

当下要求对数据库中新加入的数据行进行监听,该行中有个字段为状态字段,该字段有三种状态——处理中、成功、失败。新插入的数据行状态默认为“处理中”,如果操作者在十分钟内没有进行相应操作令状态变为“成功”,那么数据库就自动把状态改为“失败”

大概思路是可以通过 触发器(trigger) 配合定时器(event)实现,但具体要怎么操作实在不晓得要怎么做。


如何实现,请高手们给个建议吧,谢谢。俺也是刚接触mysql不久的新手,大家多关照

另外如果实现了,那这样的监听会不会对数据库的性能产生影响,因为如果一秒钟产生10条数据,那么10分钟就会产生6000个定时器。

kevinwang32的主页 kevinwang32 | 初学一级 | 园豆:123
提问于:2012-08-06 10:04
< >
分享
所有回答(4)
0

感觉程序里面加定时器比较好,比如平均一分钟去更新一次数据库中10分钟前数据的状态.如果没有则不更新

Tom.汤 | 园豆:3028 (老鸟四级) | 2012-08-06 12:49

能否告知数据库加定时器的坏处是什么

支持(0) 反对(0) kevinwang32 | 园豆:123 (初学一级) | 2012-08-06 13:29
0

用执行计划试试!

顶顶顶顶搜索 | 园豆:267 (菜鸟二级) | 2012-08-07 11:33

能否给个具体的实现方法

支持(0) 反对(0) kevinwang32 | 园豆:123 (初学一级) | 2012-08-08 14:44
0

我觉得一个简单的方案的话可以采用cache.新加入数据后,插入一条改新记录ID的cache,改cache过期时间为10分钟。过期回调函数操作状态为失败。处理操作时判断是否存在该cache,存在则删除cache。 这样效率应该会8错

寒风吹过 | 园豆:149 (初学一级) | 2012-08-20 18:06
0

SQL 使用定时作业 
如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现。 

在企业管理器中新建一个job,设定执行周期就可以了。

 作业JOB 每隔十分钟 执行
UPdate tb
set state='失败'
where state='处理中' and datediff(mi,createdate,getdate())>600

楼主研究下MSSQL  怎么使用作业就好了

acepro | 园豆:1218 (小虾三级) | 2012-08-24 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册