mysql设置定时任务

本文介绍了如何在MySQL中设置定时任务,包括开启定时策略、创建存储过程、设置定时任务及查看和开启事件,并提供了常见的定时规则说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联系我吧 http://qq.bishijie1999.top

mysql设置定时任务

一、

首先我们要开启 mysql的定时策略
执行


show variables like '%event_sche%';

如果数据为 off表示没开启 开启

set global event_scheduler=1;

二、

创建procedure(存储过程)

use test;
delimiter //
create procedure test_proce()
begin
insert into weuse(name,created_at,updated_at) values('hello',now(),now());
end//
delimiter ;

上面的代码说明:

  • use test; 这个谁都知道,使用某个数据库,这里要强调的是存储过程一定是对于某个数据库而言的,所以必须要选中一个数据库才能创建成功。
  • delimiter // 这个是将mysql中以;(分号)结尾的规定修改为以//(双斜杠)为语句结束符,因为存储过程里可以有多条sql
    语句,里面的sql语句都以;号结尾,如果回车了那么系统会当做sql语句直接执行了,我们希望的是先定义这一系列sql语句而先不执行,所以要改下操作结束符。当然你在改后一定要改回来,大家可以看到最后一行有对应的修改回来的语句。
  • 下面的是一起输入的,可以知道分别是创建存储过程test_proce(),名称可以随便起的,然后是在begin
    –end之间是定义一系列sql语句的就可以了,记住最后end结尾要以之前修改后的结尾符结束。

设置定时任务

create event second_event
on schedule every 1 second
on completion preserve disable
do call test_proce();

代码说明:

  • 上面为整体代码,敲完再写分号 第一行create event
  • day_event是创建名为second_event的事件,注意此处没有括号
  • 第二行是创建周期定时的规则,本处的意思是每秒钟执行一次 第三行on completion preserve
  • disable是表示创建后并不开始生效。 第四行do call
  • test_proce()是该event(事件)的操作内容,表示调用我们刚刚创建的test_proce()存储过程。

查看定时任务event(事件),可以查看本机所有的事件

SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;

四、开启已经创建好的event(事件)

alter event second_event on completion preserve enable;//开启定时任务
alter event second_event on completion preserve disable;//关闭定时任务

五、常见周期定时规则

周期执行–关键字 EVERY

单位有:second,minute,hour,day,week(周),quarter(季度),month,year
如:

on schedule every 1 second //每秒执行1次
on schedule every 2 minute //每两分钟执行1次
on schedule every 3 day //每3天执行1次

在具体某个时间执行–关键字 AT

如:

on schedule at current_timestamp()+interval 5 day //5天后执行
on schedule at current_timestamp()+interval 10 minute //10分钟后执行
on schedule at '2016-10-01 21:50:00' //在2016年10月1日,晚上9点50执行

在某个时间段执行–关键字STARTS ENDS

如:

on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天后开始每天都执行执行到下个月底
on schedule every 1 day ends current_timestamp()+interval 5 day //从现在起每天执行,执行5天

Event事件,可以查看,用sql命令

SELECT * FROM information_schema.EVENTS;//查看所有事件属性
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;//查看主要几个属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值