MySQL定时器开启、调用实现代码
2013-10-29 15:23
344 查看
CREATE TABLE t ( v VARCHAR(100) NOT NULL ) ENGINE INNODB DEFAULT CHARSET=utf8; 创建定时器 调用的存储过程 DELIMITER $$ DROP PROCEDURE IF EXISTS e_test $$ CREATE PROCEDURE e_test() BEGIN INSERT INTO t VALUES('1'); END $$ DELIMITER ; 要使定时起作用 MySQL的常量GLOBAL event_scheduler必须为on或者是1 -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; -- 开启定时器 0:off 1:on SET GLOBAL event_scheduler = 1; -- 创建事件 --每隔一秒自动调用e_test()存储过程 CREATE EVENT IF NOT EXISTS event_test ON SCHEDULE EVERY 1 SECOND ON COMPLETION PRESERVE DO CALL e_test(); -- 开启事件 ALTER EVENT event_test ON COMPLETION PRESERVE ENABLE; -- 关闭事件 ALTER EVENT event_test ON COMPLETION PRESERVE DISABLE; 从现在开始每隔九天定时执行 CREATE EVENT EVENT1 ON SCHEDULE EVERY 9 DAY STARTS NOW() ON COMPLETION PRESERVE ENABLE DO BEGIN CALL TOTAL(); END 每个月的一号凌晨1 点执行 CREATE EVENT EVENT2 ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR) ON COMPLETION PRESERVE ENABLE DO BEGIN CALL STAT(); END 每个季度一号的凌晨2点执行 CREATE EVENT TOTAL_SEASON_EVENT ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),'-',ELT(QUARTER(CURDATE()),1,4,7,10),'-',1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR) ON COMPLETION PRESERVE ENABLE DO BEGIN CALL SEASON_STAT(); END 每年1月1号凌晨四点执行 CREATE EVENT TOTAL_YEAR_EVENT ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 4 HOUR) ON COMPLETION PRESERVE ENABLE DO BEGIN CALL YEAR_STAT(); END
相关文章推荐
- MySql中常用语句
- MySQL之存储过程.触发器学习整理
- windows 启动和停止mysql
- mysql字符截取substring_index
- 提高MySQL数据库查询速度的六条策略
- Mysql中的from_unixtime,unix_timestamp 整型与datetime 字符串之间的转换
- WampServer怎么修改MySQL密码?
- mysql数据总结 命令
- MySql Error Code: 2006 – MySQl
- MySQL性能优化的最佳20+条经验
- 语法:MySQL中INSERT INTO SELECT的使用
- mysql存储过程示例(使用嵌套游标)
- MySQL C 语言应用程序接口开发教程
- MYSQL的C 语言接口
- MYSQL分页储存过程(取得数据集合和查询AllRows)
- MySQL 中文显示乱码
- mysql通过binlog恢复数据
- mysql常用命令
- mysql主主同步
- Lvs+Keepalived+Mysql单点写入主主…