gpt4 book ai didi

mysql 定时任务的实现与使用方法示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章mysql 定时任务的实现与使用方法示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了mysql 定时任务的实现与使用方法。分享给大家供大家参考,具体如下:

mysql5.1.6增加了一个事件调度器(Event Scheduler),可以做定时任务(定时删除记录,定时数据统计),取代之前系统的计划任务。mysql事件调度器可以精确到每秒执行一个任务.

事件调度器与触发器的区别:事件调度器是基于特定时间周期来触发执行某些任务,触发器是基于某个表产生的事件来触发.

1、查看是否开启 。

?
1
> show variables like 'event_scheduler' ;

2、开启事件调度器 。

?
1
set global event_scheduler = on;

 这里的设置,当mysql重启后,又会自动关闭。如果需要一直开启,需要在my.ini中配置如下:

?
1
event_scheduler = on

3、创建事件语法 。

?
1
2
3
4
5
6
7
8
9
10
11
12
CREATE EVENT [IF NOT EXISTS ] event_name
ON SCHEDULE schedule
[ ON COMPLETION [ NOT ] PRESERVE ]
[ ENABLE | DISABLE ]
[ COMMENT '注释' ]
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个字符.

schedule:执行时间.

[ ON COMPLETION [ NOT ] PRESERVE ] :事件是否需要复用.

[ ENABLE | DISABLE ] :事件开启或关闭.

4、关闭事件 。

?
1
ALTER EVENT event_name DISABLE;

5、开启事件 。

?
1
ALTER EVENT event_name ENABLE;

6、删除事件 。

?
1
DROP EVENT [IF EXISTS ] event_name;

7、查看所有事件 。

?
1
SHOW EVENTS;

8、事件例子 。

我们先创建一个简单的test表用于测试 。

?
1
2
3
4
5
CREATE TABLE `test` (
  `id` int (11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
  `now` datetime DEFAULT NULL COMMENT '时间' ,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

事件类型有两种,一种是间隔触发,一种是特定时间触发 。

我们每隔一秒向test表插入一条记录:

?
1
2
3
4
5
6
7
DROP EVENT IF EXISTS event_test;
CREATE EVENT event_test
ON SCHEDULE EVERY 1 SECOND STARTS '2017-08-22 11:57:00' ENDS '2017-08-22 12:00:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT '每隔一秒向test表插入记录'
DO INSERT INTO test VALUES ( NULL , now());

  。

我们指定时间来向test表插入一条记录:

?
1
2
3
4
5
6
7
DROP EVENT IF EXISTS event_test2;
CREATE EVENT event_test2
ON SCHEDULE AT '2017-08-22 12:01:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT '指定时间向test表插入记录'
DO INSERT INTO test VALUES (999999, now());

  。

希望本文所述对大家MySQL数据库计有所帮助.

原文链接:https://www.cnblogs.com/jkko123/p/7410974.html 。

最后此篇关于mysql 定时任务的实现与使用方法示例的文章就讲到这里了,如果你想了解更多关于mysql 定时任务的实现与使用方法示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com