mysql 事件 interval_二十九、MySQL基础系列笔记之事件调度器

什么是MySQL中的事件调度器

时间调度器:简单的理解,就是定时任务。按照自定义的时间周期触发某种操作,这就是事件调度器。

如:Linux系统中的crontab。

调度器使用场景及注意点

使用场景

事件调度器适用于定义收集统计信息、定期清理历史数据、定期数据库检查等场景。

注意事项

在繁忙且要求性能的数据库服务器上慎重部署和启用调度器;

过于复杂的处理更适合用程序实现;

开启和关闭事件调度器需要具有超级用户权限。

事件调度器语法

语法CREATE EVENT event_name

ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE | DISABLE ON SLAVE]

[COMMENT '注释']

DO event_body;

参数解释event_name  事件名;

schedule子句:指定什么时候执行该事件,以及如何执行该事件,schedule有如下取值

AT timestamp [+ INTERVAL interval] | EVERY interval

[STARTS timestamp [+ INTERVAL interval]]

[ENDS timestamp [+ INTERVAL interval]]

event_body:具体的操作(sql语句)或事件

AT timestamp 只执行一次;EVERY interval重复执行。interval的取值如下时间说明YEAR年

MONTH月

DAY天

HOUR时

MINUTE分

SECOND秒

WEEK周

QUARTER季度

YEAR_MONTH年:月

DAY_HOUR日:时

DAY_MINUTE日:分

DAY_SECOND日:秒

HOUR_MINUTE时:分

HOUR_SECOND时:秒

MINUTE_SECOND分:秒

使用事件调度器

查看是否开启调度器SHOW VARIABLES LIKE '%event_scheduler%';

开启调度器set global event_scheduler=1;

创建调度器# 一分钟后向指定的数据表中插入一条数据

# 说明:t1表就一个id int字段

# CURRENT_TIMESTAMP为当前日期

CREATE EVENT demo_event

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE

DO INSERT INTO t1 values (3);

查看事件调度SHOW events \G;

禁用或删除调度器# 禁用调度器

ALTER EVENT demo_event DISABLE;

# 删除调度器

DROP EVENT demo_event;

除了上述的简单使用外,还可以使用具体的时间('2020-2-11-22 00:00:00')及使用begin....end语句块。如ON SCHEDULE AT '2020-11-22 23:59:00'...和... DO BEGIN ... END# 每30向t1表插入一条数据

CREATE EVENT demo_event

ON SCHEDULE EVERY 30 SECOND

DO INSERT INTO t1 values (3);

我是小白,期待和优秀的你一起同行!

小白

2020年11月27日

转载:感谢您对自如初博客网站的认可,所有文章均属原创文章,技术类文章转载请注明出处,“自如初博客”;文学类文章请带文本链接地址,否则视为侵权!

很赞哦!(2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值