原文来自:https://blog.csdn.net/chenshun123/article/details/79677193
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里
在使用这个功能之前必须确保 event_scheduler 已开启,可执行 :
mysq> SET GLOBAL event_scheduler = 1;
# 或
mysql> SET GLOBAL event_scheduler = ON;
也可以在配置文件中添加设置 : event_scheduler=1
也可以直接在启动命令加上 : --event_scheduler=1
主要参数
创建事件(CREATE EVENT)
CREATE EVENT [IFNOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
[ON COMPLETION [NOT] PRESERVE] 可以设置这个事件是执行一次还是持久执行,默认为 NOT PRESERVE
[ENABLE | DISABLE] 可是设置该事件创建后状态是否开启或关闭,默认为ENABLE
[COMMENT ‘comment’] 可以给该事件加上注释
# 创建表
mysql> USE Test;
mysql> CREATE TABLE aaa(timeline TIMESTAMP);
# 每秒插入一条记录到数据表
mysql> CREATE EVENT e_test_insert ON SCHEDULE EVERY 1 SECOND
-> DO INSERT INTO test.aaa VALUES(CURRENT_TIMESTAMP)