小编给大家分享一下通过实例讲解mysql怎么实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
自MySQL5.1.6起,增加了一个非常有特色的功能,事件调度器(事件调度器),可以用做定时执行某些特定任务(例如:删除记录,对数据进行汇总,数据备份等等),来取代原先只能由操作系统的计划任务来执行的工作。
更值得一提的是mysql的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux的cron或Windows下的任务计划)只能精确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票,赔率,比分等)就非常适合。
事件调度器有时也可以称为临时触发器(时间触发),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(触发器)是基于某个表所产生的事件触发的,区别也就在这里。
<强>一、查看是否开启强>
祝辞,show variables like & # 39; event_scheduler& # 39;;
<强>二,开启事件调度器强>
set global event_scheduler =,,
这里的设置,当mysql重启后,又会自动关闭。如果需要一直开启,需要在我。ini中配置如下:
(推荐学习视频教程:mysql视频教程)
event_scheduler =,在
<强>三、创建事件语法强>
CREATE EVENT [IF NOT EXISTS ], event_name 提醒SCHEDULE 安排 [,提醒,COMPLETION [], NOT , PRESERVE 】 [,ENABLE |, DISABLE 】 [,COMMENT & # 39;注释& # 39;,) DO SQL语句; ,, schedule : AT TIMESTAMP [+, INTERVAL INTERVAL ], |, EVERY INTERVAL [, STARTS TIMESTAMP ], [, ENDS TIMESTAMP ] {interval : quantity YEAR |, QUARTER |, MONTH |, DAY | ,,,,,,,,,,HOUR |, MINUTE |, WEEK | SECOND | ,,,,,,,,,,YEAR_MONTH |, DAY_HOUR |, DAY_MINUTE | DAY_SECOND | ,,,,,,,,,,HOUR_MINUTE |, HOUR_SECOND |, MINUTE_SECOND }
event_name:事件名,最大长度64个字符。
时间表:执行时间。
[> ALTER EVENT event_name 禁用;
<强>五、开启事件强>
ALTER EVENT event_name 启用;
<强>六,删除事件强>
DROP EVENT [IF EXISTS ], event_name;
<强>七、查看所有事件强>
SHOW 事件;
<强>八,事件例子强>
我们先创建一个简单的测试表用于测试
CREATE TABLE “测试”,( ,“id”int (11), unsigned NOT NULL AUTO_INCREMENT COMMENT & # 39; id # 39; ,“现在”datetime DEFAULT NULL COMMENT & # 39;时间& # 39;, ,PRIMARY KEY (id) ),引擎=InnoDB DEFAULT CHARSET=use utf8;
事件类型有两种,一种是间隔触发,一种是特定时间触发。
我们每隔一秒向测试表插入一条记录:
DROP EVENT IF EXISTS event_test; CREATE EVENT  event_test 提醒SCHEDULE EVERY 1, SECOND STARTS & # 39; 2017 - 08 - 22, 11:57:00& # 39;, ENDS & # 39; 2017 - 08 - 22, 12:00:00& # 39; 提醒COMPLETION 保护 启用 COMMENT & # 39;每隔一秒向测试表插入记录& # 39; DO INSERT  INTO test 值(空,,现在());
以上是“通过实例讲解mysql怎么实现定时任务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!