4. 用mysql起一个定时任务执行存储过程

1. 建立存储过程

比如存储过程是,删除15天前的数据:

del_half_month_before_data:

DELIMITER //

BEGIN

DECLARE date_string varchar(100);

DECLARE  date_string2 varchar(100);

DECLARE  date_string3 varchar(100);

SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) INTO date_string;

SELECT CONCAT(date_string," 00:00:00") INTO date_string2;

SELECT UNIX_TIMESTAMP(DATE(date_string2)) INTO date_string3;

DELETE FROM `mytable` WHERE `timestamp` < date_string3;

END//

查看刚才创建的存储过程:show create procedure del_half_month_before_data;

执行刚才创建的存储过程:call del_half_month_before_data();


2. 检查mysql定时器是否开 & 启停定时器 & 启停事件

查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%'; 或 show variables like 'event_scheduler';

将事件计划开启 :SET GLOBAL event_scheduler = 1;  或 set global event_scheduler=1;

将事件计划关闭 :SET GLOBAL event_scheduler = 0; 或 set global event_scheduler=1;

关闭事件任务 :ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;

开启事件任务 :ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;

查看事件任务 : SHOW EVENTS;


3. 定时执行存储过程,比如每天凌晨1点执行

DROP EVENT IF EXISTS event_del_half_month_before_data;

CREATE EVENT event_del_half_month_before_data on schedule EVERY 1 DAY starts '2017-01-01 01:00:00' do call del_half_month_before_data();


####亲测有效,good####

参考:

1. mysql设置定时任务

2. http://blog.csdn.net/s445320/article/details/51897179?_t=t

3. http://www.cnblogs.com/chenpi/p/5137310.html

4. http://blog.sina.com.cn/s/blog_70207ec20101nzf2.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 任务需求:定时执行的任务,调用存储过程,进行数据迁移。 存储过程相关总结:(存储过程的创建 不能伴随有if exi...
    时待吾阅读 8,298评论 0 4
  • mysql怎么让一个存储过程定时执行查看event是否开启: show variables like '%sche...
    BigJeffWang阅读 7,546评论 0 49
  • 转载自这里 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Sto...
    杜七阅读 7,005评论 4 27
  • 夜来偏做寻常梦,天晓自生无限情。 遥想此身多少事,已行世路万千程。 为谁还得争先进,对此无须落后名。 本是当时寂寥...
    雪窗_武立之阅读 3,222评论 0 8
  • 公元二零一六年九月十六日,乔任梁的名字像病毒爆发在网络疯传。名气并不大的他一时间上了热搜榜,出于好奇就咨询度娘,被...
    黑白镜阅读 4,177评论 7 1

友情链接更多精彩内容