欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql——创建定时事件

程序员文章站 2024-03-17 20:00:22
...

本博客是创建定时事件的实践部分,如果你的基础不好请先补充一下基础知识。这里也推荐一篇博客
Mysql创建定时任务

查看event_scheduler是否开启

命令

show variables like ‘event_scheduler’
或者 select @@event_scheduler;

Mysql——创建定时事件
Mysql——创建定时事件

ON为开启,如果没有开启你可以输入下面命令

set global event_scheduler=1/ON;

如果关闭输入

set global event_scheduler=0/OFF;

创建事件的语法

CREATE EVENT [IF NOT EXISTS] event_name  
    ON SCHEDULE schedule  
    [ON COMPLETION [NOT] PRESERVE]  
    [ENABLE | DISABLE]  
    [COMMENT 'comment']  
    DO sql_statement;  
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个字符,若未指定,则默认为当前的MySQL用户名(不区分大小写);
②:schedule:决定event的执行时间和频率(注意时间一定要是将来的时间,过去的时间会出错),有两种形式 AT和EVERY;
③:ON COMPLETION [NOT] PRESERVE:可选项,默认是ON COMPLETION NOT PRESERVE 即计划任务执行完毕后自动drop该事件;ON COMPLETION  PRESERVE则不会drop掉;
④:sql_statement:要执行的SQL语句(也可以使用存储过程代替传统的SQL语句);
⑤:comment:对该时间调度器的一个注释,最大长度64个字符;

关于event时间设置推荐一个博客mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间

创建事件的例子

先创建了一个简单的数据表
Mysql——创建定时事件
然后创建一个事件,每5秒钟,向products表中插入数据
Mysql——创建定时事件
其中 event_example是事件名字,on schedule后面是时间,do后面是每隔5秒要执行的sql语句
结果

Mysql——创建定时事件
经过一段时间再用count函数来得出插入多少条数据
Mysql——创建定时事件

定时任务开启或关闭

如果你不想删除定时任务,只是想暂停一下,你可以输入一下命令

alter event event_name on completion preserve disable;

例如把刚才创建的事物关闭
Mysql——创建定时事件
开启刚才暂停的事物可以输入一下命令

alter event event_name on completion preserve enable

Mysql——创建定时事件
会发现刚才的事物会继续运行
Mysql——创建定时事件

查看已经创建好的定时任务

命令

show events\G
或者 SELECT * FROM information_schema.events\G;

Mysql——创建定时事件
Mysql——创建定时事件

删除事件

命令

DROP EVENT [IF EXISTS] event_name

Mysql——创建定时事件
Mysql——创建定时事件

相关标签: mysql