mysql使用存储过程和事件实现定时任务
2017-08-17 14:55
696 查看
首先创建一个存储过程autoStatus:
然后创建一个事件e_activity_status:
相关配置:
在linux服务器里修改mysql配置文件/etc/my.cnf,添加了下面的配置每次重启服务就会自动开启事件,不需要再手动执行sql。
set GLOBAL event_scheduler = ON;
相关sql:
查询事件是否开启
SELECT * FROM mysql.event;
开启事件
ALTER EVENT e_activity_status ENABLE;
关闭事件
ALTER EVENT e_activity_status DISABLE;
DELIMITER $$ USE `edums`$$ DROP PROCEDURE IF EXISTS `autoStatus`$$ CREATE DEFINER=`root`@`%` PROCEDURE `autoStatus`() BEGIN UPDATE d_executive_activity SET state=0 WHERE NOW()<begin_time; UPDATE d_executive_activity SET state=1 WHERE NOW()>begin_time AND NOW()<end_time; UPDATE d_executive_activity SET state=2 WHERE NOW()>end_time; END$$ DELIMITER ;
然后创建一个事件e_activity_status:
DELIMITER $$ DROP EVENT IF EXISTS `e_activity_status`$$ CREATE DEFINER=`root`@`%` EVENT `edums`.`e_activity_status` ON SCHEDULE EVERY 100 SECOND STARTS '2017-05-31 13:57:51' ON COMPLETION NOT PRESERVE ENABLE DO CALL autoStatus()$$ DO BEGIN (sql_statements) END$$ DELIMITER ;
相关配置:
在linux服务器里修改mysql配置文件/etc/my.cnf,添加了下面的配置每次重启服务就会自动开启事件,不需要再手动执行sql。
set GLOBAL event_scheduler = ON;
相关sql:
查询事件是否开启
SELECT * FROM mysql.event;
开启事件
ALTER EVENT e_activity_status ENABLE;
关闭事件
ALTER EVENT e_activity_status DISABLE;
相关文章推荐
- mysql中使用存储过程,游标,定时任务
- mysql中使用存储过程,游标,定时任务
- mysql 触发器和存储过程组合使用,实现定时触发操作
- 使用oracle定时任务和存储过程实现数据拷贝
- 使用C#的Timer控件来实现定时触发事件
- 使用ASP.NET实现Windows Service定时执行任务
- Nginx定时器的实现及定时事件的使用
- 使用服务程序实现PHP定时执行任务功能
- 在Grails中使用Quartz插件实现定时任务
- node.js中使用node-schedule实现定时任务实例
- android使用Timer 和 TimerTask 实现定时任务
- mysql中使用内置定时事件的功能来定时删除 binlog
- SQL Server 2005使用作业实现定时备份任务和删除指定天数前的备份文件
- 使用spring quartz实现定时任务
- spring中使用quartz实现定时任务
- 使用 系统任务计划程序 实现定时自动关机
- 使用ASP.NET实现Windows Service定时执行任务
- MySQL使用递归存储过程实现树状结构,实现Oracle的Connect By 功能在Mysql中如何实现Oracle中的递归
- 整理一下oracle、sqlserver、mysql的定时任务实现方法
- spring使用Quartz实现定时任务