MySQL Event

创建EVENT语法:

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} ALTER
[DEFINER = { user | CURRENT_USER }]
EVENT event_name
[ON SCHEDULE schedule]
[ON COMPLETION [NOT] PRESERVE]
[RENAME TO new_event_name]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
[DO event_body] DROP EVENT [IF EXISTS] event_name

DEFINER:指定事件执行时使用的用户账号,当事件执行时,会根据该指定账号的权限来检查事件定于的语句是否有权限执行。如果创建Event时未指定DEFINER,则默认使用创建事件的用户,与显示指定DEFINER=CURRENT_USER相同;

[ON COMPLETION [NOT] PRESERVE]: 默认Event为一次执行,执行完成后即删除,即NOT PERSERVE;如果希望Event在执行完成后也不删除,那么需指定ON COMPLETION PRESERVE选项。

[ENABLE | DISABLE | DISABLE ON SLAVE]: 在MYSQL中,Event和表一样归属于某个schema,如果该schema处于主从复制中,那么在主库创建Event后会同步到从库中,但会默认将从库中Event的状态修改为SLAVESIDE_DISABLED,即在从库上不执行。如果在主库上创建Event时指定DISABLE或DISABLE ON SLAVE,那么主库上的Event不会启用。

MySQL EventScheduler

使用EventScheduler可以实现类似SQL SERVER中Job相同的功能,定期执行特定脚本。

在复制中,可以使用SHOW SLAVE STATUS中的Seconds_Behind_Master来判断当前主库到从库的延迟,但如果主库长时间未更新,则会导致Seconds_Behind_Master的值不准确,因此我们可以使用event_scheduler来定期更新主库中的特定表的数据,以保证主库有定期更新。

操作方法:

-- 首先判断EventScheduler功能是否开启
SHOW VARIABLES LIKE 'event_scheduler'; -- 开启EventScheduler功能
SET GLOBAL event_scheduler=ON; -- 在主库上创建用于监控的表并插入数据:
CREATE TABLE TB_RepMonitor
(
ID INT PRIMARY KEY,
DT DATETIME
);
INSERT INTO TB_RepMonitor VALUES(,NOW()); -- 然后创建event_scheduler来定期更新
DROP EVENT IF EXISTS Event_TB_RepMonitor_Update;
DELIMITER $$;
CREATE DEFINER='root'@'localhost'
EVENT Event_TB_RepMonitor_Update
ON SCHEDULE EVERY SECOND
ENABLE
DO
BEGIN
UPDATE testdb1.TB_RepMonitor SET DT=NOW();
END
$$;
DELIMITER ; -- 查看EVENT的状态
SHOW EVENTS LIKE 'Event_TB_RepMonitor_Update' \G -- 当主库上创建EVENT后,会同步到从库上,并默认将状态修改为SLAVESIDE_DISABLED;
SHOW EVENTS LIKE 'Event_TB_RepMonitor_Update' \G -- 在主库上查看testdb1.TB_RepMonitor表数据'
-- 这样就可以放心使用SHOW SLAVE STATUS中的Seconds_Behind_Master的值了
SELECT *,NOW() FROM testdb1.TB_RepMonitor;

相关操作命令:

##==================================##
##查看数据库中创建的所有作业##
select * from information_schema.events \G; ##==================================##
##启用作业##
ALTER EVENT schema.event_name ENABLE ##==================================##
##禁用作业##
ALTER EVENT schema.event_name DISABLE ##==================================##
##删除作业##
drop event schema.eventname

MySQL Event--Event and EventScheduler的更多相关文章

  1. mysql之event

    mysql之event http://blog.csdn.net/lxgwm2008/article/details/9088521 Mysql事件调度器(Event Scheduler)类似于定时器 ...

  2. MySQL 定时器EVENT学习

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/6583535 MySQL 定时器EVENT学习 MySQL从5.1开始支持event功 ...

  3. Mysql使用event,类似oracle job

    MySQL从5.1开始支持event功能,类似oracle的job功能.有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了.如linux crontab功能. ...

  4. Mysql中event事件的入门

    Mysql中event事件的入门 主要涉及的知识点:mysql的存储过程.mysql的event事件调度. 参考资料: Qiao_Zhi的博客:[周期性执行事件]MySQL事件(Event)& ...

  5. Mysql的Event

    Mysql的Event Event简介 Event是mysql中的一个事件,和触发器类似,触发器是在某条sql语句执行后可能会触发,而Event是每隔一段时间或某个特定的时间点执行,可以精确到秒. 准 ...

  6. MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

    MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...

  7. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  8. 【MySQL】Event事件与游标

    MySQL的事件就像Linux系统上的定时任务,按照设置的时间或者间隔时间执行设置好的任务. 如果用SQLyog一类的写存储过程.触发器或者事件会省事一些,例如SQLyog就会生成一个大致的模板: D ...

  9. MySQL数据库 Event 定时执行任务.

    一.背景 由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间.即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的.在我们项目中由于不清理数据,一 ...

  10. mysql的event(事件)用法详解

    SELECT * FROM mysql.event;SET GLOBAL event_scheduler = 1; -- 开启定时器 0:off 1:on SHOW VARIABLES LIKE 'e ...

随机推荐

  1. P1108 低价购买

    传送门 思路: 对于第一问很容易看出是求最长下降子序列,N2 的暴力就可解决.而第二问是求最优方案数(且不重复),需要判重.可以在求解最长下降子序列的基础上增开一个数组 g ,g[ i ] 表示以 i ...

  2. [JavaScript] 设置函数同名变量为false会导致函数无法执行

    var findEmail=false; function findEmail(){ alert("findEmail");} 这样函数不会运行. 为了保证函数可以运行,修改为: ...

  3. 使用Gitlab实现自动化部署与持续集成

    Gitlab-Ci运行原理: 由以下两个模块组成gitlab-ci servergitlab-ci-runner其中,gitlab-ci server负责调度.触发Runner,以及获取返回结果. 而 ...

  4. MSF MS17_010漏洞测试

    0x00 window 2003 R2 x86 use exploit/windows/smb/ms17_010_eternalblue show options set rhost 192.168. ...

  5. Rails-Treasure chest2 嵌套表单;

    嵌套表单1-1 嵌套表单1-多 选日期时间的UI (一个jquery Plugin) 拆除前后台css和js Rich Editor, 显示输入的HTML tag 批次编辑/删除 嵌套表单1-1 核心 ...

  6. web中静态资源和动态资源的概念及区别

    1.静态资源和动态资源的概念 简单来说: 静态资源:一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来. 动态资源:一般客户端请求的动态资源, ...

  7. Centos 7 搭建FTP详细配置步骤方法

    vsftpd的安裝使用: ftp概述:FTP(File Transfer protocol,文件传输协议)是经典的C/S架构的应用层协议,需要有服务端软件,客户端软件两个部共同组成实现文件传输功能. ...

  8. canvas绘图基础

    <canvas>元素是HTML5中的绘图元素,通过定义一个画布区域,然后使用javascript动态地在这个区域里面绘制图形,对于2D和3D图形都可以绘制,我们将其分成2D上下文和WebG ...

  9. Vue(七) 组件详解

    组件 (Component) 是 Vue.js 最核心的功能,也是整个框架设计最精彩的部分,当然也是最难掌握的. 组件与复用 组件用法 组件与创建 Vue 实例类似,需要注册后才可以使用.注册有全局注 ...

  10. decode encode

    https://blog.csdn.net/crylearner/article/details/38521685,python常用的十进制.16进制.字符串.字节串之间的转换