MySQL定时器可以设置执行次数吗

MySQL定时器可以设置执行次数吗,第1张

mysql要实现定时执行sql语句就要用到Event

具体 *** 作如下:

先看看看event 事件是否开启

show variables like '%sche%'

如没开启,则开启。需要数据库超级权限

set global event_scheduler =1

创建存储过程 update_a (注:就是你要执行的sql语句)

mysql>create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id)

创建一个定时任务:event e_updateA

mysql>create event if not exists e_updateA

->on schedule every 60 second ---设置60秒执行一次

->on schedule at date_add(now(),interval 1 minute) ---在一分钟后执行

->on completion preserve

->do call update_a() ---执行update_a()存储过程

创建Event之后,sql语句就定时执行一次。

关闭事件任务

可以在某个时间点执行一个 *** 作,但是查了些**发现mysql定时任务,它就又执行下一条 *** 作呢,当该 *** 作执行完后mysql5,然后我就想,大多都是这样的例子?这样子的功能单纯用mysql的定时任务能实现不.1后自带了定时任务机制,执行一个 *** 作,所以就不想采用利用系统执行定时脚本的方式,那么它可不可以在某个时间点

此外,子程序在提高程序的重用性和可维护方面也是很有用的。只要编译成功,子程序就可以放心地用在很多应用程序中。如果它的定义内容发生了改变,受到影响的只有子程序本身而已,这就简化了维护过程。最后,子程序还有助于逻辑的抽象。使用子程序时,我们需要知道的是它们的功能,而不是它们实现功能的细节问题。

mysql实现定时任务是有一个时间调度器,所以首先要查看这个时间调度器是否开启。

查看的命令:

show variables like 'event_scheduler'

如果没有打开,则设置打开。设置的命令是:

set global event_scheduler = ON或set global event_scheduler = 1

确定打开事件调度器后,我们可以创建一个定时任务。

创建定时任务的语法为:

create event 定时任务名称

ON schedule 定时时间

do

定时任务所要执行的sql

example:每隔一分钟往表tt里插入一条数据

create event insert_tt

ON schedule every 1 MINUTE

do

insert into tt values(1)

如果要执行多条sql则可用多个do

create event insert_tt

ON schedule every 1 MINUTE

do

insert into tt values(1)

do

.......

使用命令查看所有的定时任务及其状态:

show processlist

如果要停掉某个定时任务可以使用:

alter event 定时任务名 ON

COMPLETION PRESERVE DISABLE

example:

alter event insert_tt ON

COMPLETION PRESERVE DISABLE

开启某个定时任务:

alter event 定时任务名称 ON

COMPLETION PRESERVE ENABLE


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7596641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存