mysql 创建job_MySQL job/定时任务/event 学习

概要简述

MySQL的定时任务(简称job)是可以通过MySQL自身实现的,相比较系统的计划任务,MySQL自身job可以实现秒级定位,即可以精确到秒单位进行任务的执行(系统计划任务一般是分钟);所以MySQL的job在要求精确化的任务上有极大的优势;MySQL 的job官方称为event,MySQL EVENT的原理和触发器非常的相似,区别在于,MySQL的event是系统定时驱动执行,而触发器是通过需求触发进行执行的,两者各有优势。

MySQL event和触发器一样可以调用存储过程,然而存储过程不能调用event,event只能系统执行,对于执行需求变更,我们只能手动的去调整event。

创建语法

--------创建语法

CREATE

[DEFINER = { user | CURRENT_USER }] --一般不写

EVENT --event标识

[IF NOT EXISTS] --如果没有就新建,建议不写这一行,确保每个event独立不冲突

event_name -- 取个event名字

ON SCHEDULE --计划任务标识

schedule --计划任务时间,有两个参数(at 和 every),at代表当前一次,every表示每过多少时间执行一次

[ON COMPLETION [NOT] PRESERVE] --可以不写,默认是ON COMPLETION NOT PRESERVE 即计划任务执行完毕后自动drop该事件;ON COMPLETION PRESERVE则不会drop

[ENABLE | DISABLE | DISABLE ON SLAVE] --可以不写,默认状态,默认是启用状态,可以指定为新建关闭状态

[COMMENT 'comment'] --注释event,可以不写

DO --执行语句标识

event_body; --执行的sql

--------------------------------------------计划任务可以定义的时间方式:

schedule:

AT timestamp [+ INTERVAL interval] ... --at方式

| EVERY interval --every方式

[STARTS timestamp [+ INTERVAL interval] ...] --在at/every后可以指定什么时候开始

[ENDS timestamp [+ INTERVAL interval] ...] --指定什么时候结束

-------------------------------------------MySQL官方提供的时间字符,可以参考

interval:

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

步骤流程

在创建job之前,需要做以下几件事:

1、确保系统的event事件开关是打开的,允许我们创建event;

2、确保我们创建后是在成功运行的,所以要会查看当前系统有的event

3、确保我们创建是按照需求来的,如果需要更改,我们要会更改event

查看当前系统有的event

-- 查看系统有哪些event事件

--方法一

select * from mysql.event;

--方法二

SELECT * FROM information_schema.events;

查看系统开关

-- 方法一

select @@event_scheduler;

--方法二

show variables like 'event_scheduler';

设置自动启动

如果value是off或者是0;代表没有开启,我们可以手动开启:

### 开启event事件:

-- 方法1

set GLOBAL event_scheduler=ON;

-- 方法2

set GLOBAL event_scheduler=1;

重启后自动启动

设置mysql重启后,job能自动启动

编辑/etc/my.cnf文件,在[mysqld]下添加event_scheduler=1

mysql server重启之后 也会将 global event_scheduler 设置为 on 要是没有 重启之后 就是off.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值