当前位置:网站首页>Mysql中事件和定时任务
Mysql中事件和定时任务
2022-08-11 04:04:00 【无敌小田田】
一、简介
事件(event)是MySQL在相应的时刻调用的过程式数据库对象。是MYSQL一个工具,一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。
二、创建语法
CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]
interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
名词解释
event_name :创建的event名字(唯一确定的)。
ON SCHEDULE:计划任务。
schedule: 决定event的执行时间和频率(注意时间一定要是将来的时间,过去的时间会出错),有两种形式 AT和EVERY。
[ON COMPLETION [NOT] PRESERVE]: 可选项,默认是ON COMPLETION NOT PRESERVE 即计划任务执行完毕后自动drop该事件;ON COMPLETION PRESERVE则不会drop掉。
[COMMENT 'comment'] :可选项,comment 用来描述event;相当注释,最大长度64个字节。
[ENABLE | DISABLE] :设定event的状态,默认ENABLE:表示系统尝试执行这个事件, DISABLE:关闭该事情,可以用alter修改
DO event_body: 需要执行的sql语句(可以是复合语句)。CREATE EVENT在存储过程中使用时合法的。
三、开启关闭事件调度器
1、查看是否开启
show variables like '%event_scheduler%';
默认是off,未开启
2、开启事件调度器
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
或者通过配置文件 my.cnf
event_scheduler = 1 #或者ON
查看调度器线程:
show processlist;
3、关闭事件调度器
SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;
4、查看调度器线程任务
SELECT @@event_scheduler;
SHOW PROCESSLIST;
show events; #查看当前schemal 调度任务
select * from mysql.event;#查看整个数据库 调度任务
四、创建测试表
1、简单省略
2、创建事件1(立即启动事件)
create event event_now
on schedule
at now()
do insert into events_list values('event_now', now());
3、创建事件2(每分钟启动事件)
create event test.event_minute
on schedule
every 1 minute
do insert into events_list values('event_now', now());
4、创建事件3(每秒钟启动事件)
CREATE event event_now
ON SCHEDULE
EVERY 1 SECOND
DO INSERT INTO event_test VALUES(1);
5、创建事件4(每秒钟调用存储过程)
CREATE DEFINER=`root`@`localhost` EVENT `eventUpdateStatus`
ON SCHEDULE EVERY 1 SECOND
STARTS '2017-11-21 00:12:44'
ON COMPLETION PRESERVE
ENABLE
DO call updateStatus()
边栏推荐
- Leetcode 108. 将有序数组转换为二叉搜索树
- Uni - app - access to Chinese characters, pinyin initials (according to the Chinese get pinyin initials)
- 洛谷P4560 Wall 砖墙
- leetcode刷题第13天二叉树系列之《98 BST及其验证》
- 获取Qt的安装信息:包括安装目录及各种宏地址
- Build Zabbix Kubernetes cluster monitoring platform
- En-us is an invalid culture error solution when Docker links sqlserver
- 移动端地图开发选择哪家?
- Which one to choose for mobile map development?
- Provincial level of Echart maps, as well as all prefecture-level download and use
猜你喜欢
[Likou] 22. Bracket generation
移动端地图开发选择哪家?
获取Qt的安装信息:包括安装目录及各种宏地址
Qnet Weak Network Test Tool Operation Guide
Description of ESB product development steps under cloud platform
快速使用UE4制作”大场景游戏“
[C Language] Getting Started
A simple JVM tuning, learn to write it on your resume
LeetCode刷题第16天之《239滑动窗口最大值》
【C语言】入门
随机推荐
【FPGA】SDRAM
【实战场景】商城-折扣活动设计方案
console.log alternatives you didn't know about
Interchangeability and Measurement Techniques - Tolerance Principles and Selection Methods
es-head插件插入查询以及条件查询(五)
Redis:解决分布式高并发修改同一个Key的问题
Basic understanding of MongoDB (2)
机器学习可以应用在哪些场景?机器学习有什么用?
The "top pillar" slides, and new growth is extremely difficult to shoulder the heavy responsibility. Is Ali "squatting" to jump higher?
redis按照正则批量删除key
A brief analysis of whether programmatic futures trading or manual order is better?
App Basic Framework Construction丨Log Management - KLog
[Likou] 22. Bracket generation
"125 Palindrome Verification" of the 10th day string series of LeetCode brushing questions
"98 BST and Its Verification" of the 13th day of leetcode brushing series of binary tree series
The last update time of the tables queried by the two nodes of the rac standby database is inconsistent
洛谷P2370 yyy2015c01 的 U 盘
Which one to choose for mobile map development?
【力扣】22.括号生成
.NET 服务注册