mysql如何定时执行

5.1版本以后,MYSQL支持定时执行(event)的功能,就跟linux的crontab差不多。

先查看一下你的MSYQL版本,查询版本信息的SQL语句:

select VERSION()

确定版本支持之后,再查看一下event是否开启:

show variables like ’%sche%’;

如果未开启,那如何开启呢?

show VARIABLES LIKE ’%sche%’;
set global event_scheduler =1;
show VARIABLES LIKE ’%sche%’;

一般定时执行有2种:

1、从具体一个时间点开始,每隔一段时间执行一次;

从现在开始,每30秒执行一次

create event if not exists e_test
on schedule every 30 second starts now()
on completion preserve
do
INSERT into sdb_yoyi (yoyiscid,orderid) VALUES(2,3)

2、从具体一个时间点开始,在当日的某个时间点进行执行;

每个月的一号凌晨1点执行

create event if not exists e_test2

on schedule every 1 month starts DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)

on completion preserve

do

INSERT into sdb_yoyi (yoyiscid,orderid) VALUES(2,3)

 

也可以对事件任务进行关闭:

alter event e_test ON

COMPLETION PRESERVE DISABLE;

对已经关闭的事件任务进行开启:

alter event e_test ON

COMPLETION PRESERVE ENABLE;

觉得文章有用?立即: 和朋友一起 共学习 共进步!

猜您喜欢

文章评论: “mysql如何定时执行

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>