事件
说明:
我们可以把数据库操作安排在预定时间执行。事件是与一个时间表相关联的存储程序,时间表用来定义事件发生的时间、次数以及何时消失。事件非常适合用来执行各种无人值守的系统管理任务,如定期更新汇总报告、清理过期失效的数据、对日志数据表进行轮转等。
在默认的情况下,事件调度器不会运行。如果你想使用事件,必须先启用事件调度器。把以下语句添加到一个选项文件中(服务器在启动时将读取): [mysqld] event_scheduler=ON
如果你想在系统运行时查看事件调度器的状态,可以使用这条语句:
show variables like 'event_scheduler'
如果你想在系统运行时停止或启动事件调度器,可以通过改变event_scheduler系统变量的值来达到目的(它是一个GLOBAL变量,你必须拥有SUPER权限才能修改它):
mysql> set GLOBAL event_scheduler = ON;
实际使用
mysql> create event e1 on schedule every 5 second do insert into test1 (test1)values('8888');
DO子句负责定义事件的语句体部分
如果想创建一个只执行一次的事件,就应该使用AT调度类型而不是EVERY。如下所示的定义将创建一个只执行一次的事件,在一个小时后执行:
mysql> create event e2 on schedule at current_timestamp + interval 5 minute do select 1;
如果你想禁用某个事件,让它不再定期执行,或者重新激活某个已被禁用的事件,请使用ALTER EVENT语句:
alter event e1 disable;
alter event e1 enable;