MySQL中的事件调度器,EVENT,也叫定时任务,类似于Unix crontab或Windows任务调度程序。
EVENT由其名称和所在的schema唯一标识。
EVENT根据计划执行特定操作。操作由SQL语句组成,语句可以是BEGIN…END语句块。EVENT可以是一次性的,也可以是重复性的。一次性EVENT只执行一次,周期性EVENT以固定的间隔重复其操作,并且可以为周期性EVENT指定开始日期和时间、结束日期和时间。(默认情况下,定期EVENT在创建后立即开始,并无限期地继续,直到它被禁用或删除。)
EVENT由一个特殊的事件调度器线程执行,用SHOW PROCESSLIST可以查看。
root@database-one 13:44: [gftest]> show variables like '%scheduler%';+-----------------+-------+| Variable_name | Value |+-----------------+-------+| event_scheduler | OFF |+-----------------+-------+1 row in set (0.01 sec)
root@database-one 13:46: [gftest]> show processlist;+--------+------+----------------------+-----------+---------+------+----------+------------------+| Id | User | Host | db | Command | Time | State | Info |+--------+------+----------------------+-----------+---------+------+----------+------------------+......+--------+------+----------------------+-----------+---------+------+----------+------------------+245 rows in set (0.00 sec)
root@database-one 13:46: [gftest]> set global event_scheduler=1;Query OK, 0 rows affected (0.00 sec)
root@database-one 13:47: [gftest]> show variables like '%scheduler%';+-----------------+-------+| Variable_name | Value |+-----------------+-------+| event_scheduler | ON |+-----------------+-------+1 row in set (0.01 sec)
root@database-one 13:47: [gftest]> show processlist;+--------+-----------------+----------------------+-----------+---------+------+------------------------+------------------+| Id | User | Host | db | Command | Time | State | Info |+--------+-----------------+----------------------+-----------+---------+------