mysql定时任务(event事件)
2024-09-01 18:33:52
1.event事件
- 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”
- 事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的,事件也称为临时性触发器
- 事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次
2.创建事件
- 事件由两个主要部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action ),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者 benin...end语句块,这两种情况允许我们执行多条SQL
- sql语句创建事件:
- 每隔10秒往数据库插入一条数据
- sql语句创建事件:
- navicat创建事件:
- 右键新建事件:
- 编写需要执行的sql语句
- 设置计划任务
- 一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它立即变为活动的(ENABLE),一个活动的事件可以执行一次或者多次
3.开启关闭事件调度器
- MySQL事件调度器event_scheduler负责调用事件,它默认是关闭的。这个调度器不断地监视一个事件是否要调用, 要执行事件,必须打开调度器
- 查看当前是否已开启事件调度:SHOW VARIABLES LIKE 'event_scheduler';
- 开启事件计划;键值1或者ON表示开启;0或者OFF表示关闭:SET GLOBAL event_scheduler = ON;或者通过配置文件my.cnf:event_scheduler = 1 #或者ON
4.查看、修改和删除事件
- 查看事件
- 查看当前所在库的事件:show events;
- 查看所有事件:select * from mysql.event;
- 修改事件:修改事件的定义和属性
- 开启某事件:ALTER EVENT auto_del_students ON COMPLETION PRESERVE ENABLE;
- 关闭某事件:ALTER EVENT auto_del_students ON COMPLETION PRESERVE DISABLE;
- 修改事件名:ALTER EVENT auto_del_students RENAME TO
auto_del_students1;
- 修改执行形式:every或者at
- 删除事件:DROP EVENT [IF EXISTS] event_name
5.调用存储过程
- 创建的存储过程
- 创建任务调度的事件(调用存储过程)
最新文章
- CSipSimple配置系统
- python thread的join方法解释
- mac os x使用技巧及常用软件
- LSB最低有效位隐写入门
- 如何解决Python脚本在Linux和Windows上的格式问题
- (转载)通过dbgrideh 从数据集中选择合适的记录
- windows 查看某个端口号被占用情况
- flex4.6事件分派+组件+参数传递
- 20个命令行工具监控 Linux 系统性能
- 用gdb调试python多线程代码-记一次死锁的发现
- logback-MDC日志唯一标识
- GitHub上高质量项目
- Junit4使用实验报告
- SqlServer 对分组的内容进行拼接-group_concat
- leetcode AC1 感受
- JS-过滤敏感词【RegExp】
- 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆
- C++解析(27):数组、智能指针与单例类模板
- Bad Hair Day---poj3250(栈的运用)
- php 中全局变量global 的使用