一.用途
用于某一时间执行一个事件或周期性执行一个事件.

二.语法
CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;

基本点:
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]

interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

a.event_name表示事件的名称
b.schedule表示触发点,【AT timestamp】一般用于只执行一次,一般使用时可以使用当前时间加上延后的一段时间,例如:AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR。也可以定义一个时间常量,例如:AT '2006-02-10 23:59:00';【EVERY interval】一般用于周期性执行,可以设定开始时间和结束时间。
c.ON COMPLETION [NOT] PRESERVE,默认是事件到期后会自动删除。如果想保留该事件使用ON COMPLETION PRESERVE;如果不想保留也可以设置ON COMPLETION [NOT] PRESERVE。
d.ENABLE | DISABLE表示设置启用或者禁止这个事件。
e.COMMENT 表示增加注释。

三.EVENT开启
msyql默认关闭了event.
show global variables like '%event%';
显示:
event_scheduler OFF

开启:
set global event_scheduler=ON(或1);

查看进程:
show PROCESSLIST;

会看到一个用户为event_scheduler,执行状态为Waiting on empty queue的进程

四.示例
1.每秒向test2插入一条数据
DELIMITER //
CREATE EVENT test2_insert ON SCHEDULE EVERY 1 SECOND
DO
BEGIN
INSERT test2(uid) VALUES(10);
END;
//

2.每今日0点开始,每5分钟向test2插入一条数据
DELIMITER //
CREATE EVENT test2_insert_5_minute ON SCHEDULE EVERY 5 MINUTE STARTS CURDATE()
DO
BEGIN
INSERT test2(`time`) VALUES(NOW());
END;
//

对于手动更改日期,比如将当前事件18:08:05改为19:09:55,实际插入的记录会被延迟,本来应该在19:10:00插入的记录,可能会延后到19:10:50

五.查看和删除事件
show events;
show create EVENT test2_insert_5_minute;

drop event test2_insert_5_minute;

最新文章

  1. vueJs+webpack单页面应用--vue-router配置
  2. Spring注解@PostConstruct与@PreDestroy
  3. Nodejs Http发送post请求
  4. SQL Server笔记
  5. Android Adapter的getViewTypeCount和getItemViewType
  6. 使用TypeScript开发一个在线记事本,支持离线存储
  7. 宿主机丢失vmnet0和vmnet8网卡
  8. wget实例
  9. SQL Server 深入解析索引存储(聚集索引)
  10. django数据查询之F查询和Q查询
  11. sql 表值函数与标量值函数
  12. PAT 乙级 1066. 图像过滤(15)
  13. wpf XAML 设计器异常,提示NullReferenceException 未将对象引用设置到对象例
  14. =delete(c++11)
  15. vim:过一个字符
  16. [Selenium]Release in dragAndDrop doesn't work after i update the version of Selenium to 2.45.0
  17. 转:google测试分享-问题和挑战
  18. 你真的会用javascript?
  19. Xcode快捷
  20. 一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发

热门文章

  1. c#深拷贝的一个方法
  2. SQL 整理
  3. OpenGL入门学习 课程 (三) 绘制几何图形的一些细节问题
  4. Javascript报错Converting circular structure to JSON 错误排解
  5. 解决Django的admin界面中文乱码
  6. React+dva.js+typescript实现百度贴吧移动web端
  7. php 快速上手
  8. Flip Game -- LeetCode
  9. 【strork】HAOI2017旅游记
  10. POJ 2836 Rectangular Covering(状压DP)