MySQL job/定时任务/event 学习
参考文章:
https://blog.csdn.net/qq_21108311/article/details/82589850
https://blog.csdn.net/qq_27238185/article/details/56271877
https://blog.csdn.net/lxpbs8851/article/details/8019965
概要简述
原文链接:https://blog.csdn.net/qq_21108311/article/details/82589850
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.
MySQL job/定时任务/event 学习的更多相关文章
- MySQL 定时器EVENT学习
原文:http://blog.csdn.net/lifuxiangcaohui/article/details/6583535 MySQL 定时器EVENT学习 MySQL从5.1开始支持event功 ...
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...
- 如何写mysql的定时任务
什么是事件: 一组SQL集,用来执行定时任务,跟触发器很像,都是被动执行的,事件是因为时间到了触发执行,而触发器是因为某件事件(增删改)触发执行: 查看是否开启: show variables li ...
- Mysql编写定时任务事件
原文:Mysql编写定时任务事件 场景: 例如:某系统,用户每天只能拥有一次的抽奖机会,抽过后当天就不可再抽,但是过了24:00点后用户就重新拥有一次抽奖机会.像这种需要数据库定时对某个字段进行更新操 ...
- [DB] - Mysql创建定时任务
mysql支持定时任务的创建,要求mysql服务器开始定时任务调度. 1. 查看是否开启定时任务执行 SHOW VARIABLES LIKE 'event_scheduler'; // OFF表示没有 ...
- mysql 进阶查询(学习笔记)
学习笔记,来源:实验楼 ,链接: https://www.shiyanlou.com/courses/9 一.日期计算: 1.要想确定每个宠物有多大,可以使用函数TIMESTAMPDIFF()计算 ...
- MySQL实战45讲学习笔记:第二十四讲
一.引子 在前面的文章中,我不止一次地和你提到了 binlog,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致 ...
- 多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客
多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客 多IDC数据分布--MySQL多机房部署
- SQLServer和MySQL job和 event定时器的差别
SQLServer和MySQL job和 event定时器的差别
随机推荐
- QQ和微信点击链接或扫描自动跳转外部浏览器
微信上进行的网页宣传.游戏传播.APP下载各类活动很多,但是各位朋友肯定经常会遇到一些特殊需求,网页需要在手机默认浏览器打开而不是微信内置浏览器.这个问题怎么解决呢? 另一种情况是你的网址被恶意举报被 ...
- Python列表操作与深浅拷贝(5)——数字处理函数、类型判断、列表链表队列栈
python内建数据结构 分类 数值型: int float complex bool 序列对象: 字符串str 列表list 元组tuple 键值对: 集合set 字典dict 数值型 (list ...
- Centos7 安装chrony服务
从Centos7 开始,新增了一条时间查询命令:timedatectl [root@c2 ~]# timedatectl Local -- :: CST Universal -- :: UTC RTC ...
- 201871010109-胡欢欢《面向对象程序设计(java)》第十一周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- javaConfig下的springmvc配置
javaConfig下的springmvc配置 一.静态资源过滤 XML的配置 <mvc:resources mapping="/**" location="/&q ...
- js:
JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Net ...
- Java 高级面试题收集
Java概念题 拆箱装箱的原理 自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类 ...
- Python前言之Markdown使用
一.Markdown基本语法 1.1标题 代码: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 效果: 一级标题 二级标题 三级标题 ...
- 启动hadoop后jps没有namenode,并且启动报错9000
启动hadoop报错: 解决方法: 我发现没有9000端口被占用,也不知道9000到哪去了,但是也没有NameNode,于是,直接把NameNode格式化了,再重启HDFS即可. 格式化命令:
- [LeetCode] 209. Minimum Size Subarray Sum 最短子数组之和
Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...