如何写mysql的定时任务

如何写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

查看event是否开启

代码如下

show

variables

like

'%sche%'

将事件计划开启

代码如下

set

global

event_scheduler

=1

创建存储过程test

代码如下

CREATE

PROCEDURE

test

()

BEGIN

update

examinfo

SET

endtime

=

now()

WHERE

id

=

14

END

创建event

e_test

代码如下

create

event

if

not

exists

e_test

on

schedule

every

30

second

on

completion

preserve

do

call

test()

每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.

关闭事件任务

代码如下

alter

event

e_test

ON

COMPLETION

PRESERVE

DISABLE

开户事件任务

代码如下

alter

event

e_test

ON

COMPLETION

PRESERVE

ENABLE

以上测试均成功,测试环境为mysql

5.4.2-beta-community

mysql

community

server(GPL)

以上的相关内容就是对MySQL定时执行的介绍,望你能有所收获。

mysql

计划任务重启后消失

我们只要修改一配置即可

event_scheduler在mysql的config中设置为OFF有关。去mysql中将配置改为ON则就搞定了。

1

打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。

2

双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。

3

点击保存,d出个命名对话框,给这个任务取个名字,点击“确定”。

4

点击“设置”计划任务。

5

d出的对话框,选择“计划”,再点击“新建”。

6

这里设置为从2014年1月24号起每天早上九点备份该数据库。如果你想提高备份频率、或者设置备份截止日期,请点击“高级”。

7

高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点,每隔2小时备份一次,每天的备份都持续24小时。

8

最后,输入电脑密码


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存