事件由一个特定的线程——事件调度器来管理,事件是根据指定时间表,在某一特定的时间点,触发相关的SQL语句或存储过程。
01、事件概述
事件(Event)是根据指定时间表执行的任务,是MySQL在相应的时刻调用的过程式数据库对象。它由事件调度器这一特定的线程来管理的。
事件调度器即定时任务调度器,指在某个特定的时间根据计划自动完成指定的任务或每隔多长时间根据计划做一次指定的任务。MySQL的事件调度器可以实现每秒执行一个任务,这在一些对实时性要求较高的环境下是非常实用的。
事件调度器是定时触发执行的,从这个角度上看也可以称其为“临时触发器”。但是它与触发器又有所区别,触发器只针对某张数据表产生的事件(INSERT、UPDATE和DELETE操作)执行特定的任务,而事件调度器则是根据时间周期来触发设定的任务,且操作对象可以是多张数据表。
02、开启或关闭事件调度器
由于事件是由事件调度器这一特定的线程来管理的,因此若想让事件正常执行,首先要开启事件调度器。MySQL 8.0以上是默认开启事件调度器的。
1. 查看事件调度器
可以通过对全局变量event_scheduler的查看,掌握事件调度器的状态,其值为OFF表示关闭,其值为ON表示开启。
查看事件调度器的基本语法格式如下所示。