通过mysql存储过程实现类似计划任务的效果
2017-03-03 16:13
393 查看
首先说明需求,某个智能机柜有好多货道,在货道坏了的时候,就会将原本isbad=0的字段置为1,现在这个存储过程的目的是,要将这个被置为1字段(同时满足被置为1的时间距离现在已经超过两天)的数据定时的置为0,以表示货道又变好了
1. 数据库开启定时任务功能
2. 编写创建存储过程
说明:isbad为状态字段,bad_time为时间字段,当前时间大于bad_time+2天,并且isbad状态为不正常时执行
编写并创建定时任务
说明:从2014-01-01 00:00:00开始每隔1天调用上面的存储过程,间隔时间可以调整SECOND,HOUR,DAY
事件的开启关闭命令
1) 临时关闭事件
2) 开启事件
1. 数据库开启定时任务功能
SET GLOBAL event_scheduler = 1;
2. 编写创建存储过程
-- ---------------------------- -- Procedure structure for sp_road_status -- ---------------------------- DROP PROCEDURE IF EXISTS `sp_road_status`; DELIMITER ;; CREATE PROCEDURE `sp_road_status`() BEGIN UPDATE ecs_vend_road SET isbad = 0 WHERE isbad = 1 and bad_time>0 AND ADDDATE(DATE_FORMAT(bad_time,'%Y-%m-%d'),INTERVAL 2 DAY) <= CURRENT_DATE(); END ;; DELIMITER ;
说明:isbad为状态字段,bad_time为时间字段,当前时间大于bad_time+2天,并且isbad状态为不正常时执行
编写并创建定时任务
-- ---------------------------- -- Event structure for evt_road_status -- ---------------------------- DROP EVENT IF EXISTS `evt_road_status`; DELIMITER ;; < 4000 span class="hljs-keyword">CREATE EVENT `evt_road_status` ON SCHEDULE EVERY 1 DAY STARTS '2016-05-31 00:00:00' DO CALL sp_road_status(); ;; DELIMITER ;
说明:从2014-01-01 00:00:00开始每隔1天调用上面的存储过程,间隔时间可以调整SECOND,HOUR,DAY
事件的开启关闭命令
1) 临时关闭事件
ALTER EVENT evt_road_status DISABLE;
2) 开启事件
ALTER EVENT evt_road_status ENABLE;
相关文章推荐
- windows下实现mysql备份至异地,并结合计划任务实现自动管理。
- 纯PHP代码实现类似计划任务的无浏览器定时
- Python通过调用mysql存储过程实现更新数据功能示例
- mysql使用存储过程和事件实现定时任务
- mysql实现类似rownumber()的效果
- JDBC调用mysql存储过程实现分页效果
- 在Mysql数据库里通过存储过程实现树形的遍历
- 怎么样通过代码实现类似IE浏览器地址栏ComboBox的效果。
- 通过计划任务实现windows8系统启动自动显示桌面
- 通过批处理命令和计划任务实现程序的停止和监控重启动
- 通过YYtext实现文本点击(类似微博效果)
- windows下通过bat脚本和计划任务实现设置某一服务的守护进程
- asp javascript 通过放大切换图片实现类似屏保效果
- 通过Windows计划任务实现Symantec病毒服务器自动升级病毒库
- MySQL实现类似Oracle的row_number效果
- mysql实现类似伪列效果
- Java中没有C#的out关键字,但可以通过数组实现类似的效果
- MySQL通过自增一列在Select ... into outfile...里面实现CSV导出带字段的效果