在 MySQL 中,可以通过 CREATE EVENT 语句来创建事件,其语法格式如下:

CREATE EVENT [IF NOT EXISTS](可选,判断事件存在) event_name(必选,指定事件名称)ON SCHEDULE schedule(必选,事件执行时间,间隔)[ON COMPLETION [NOT] PRESERVE](可选,是否循环执行,默认不循环)[ENABLE | DISABLE | DISABLE ON SLAVE](可选,指定事件属性)[COMMENT 'comment'](可选,定义事件注释)DO event_body;(必选,事件启动执行的代码)

从上面的语法可以看出,CRATE EVENT 语句由多个子句组成,各子句的详细说明如下表所示。

ON SCHEDULEON SCHEDULE schedule(必选,事件执行时间,间隔))子句中,参数 schedule 的值为一个 AT 子句,用于指定事件在某个时刻发生,其语法格式如下:

AT timestamp(具体时间点) [+ INTERVAL interval]...| EVERY(事件指定时间内发生周期) interval[STARTS timestamp [+ INTERVAL interval] ...][ENDS timestamp[+ INTERVAL interval]...]

参数说明如下:

  • timestamp:一般用于只执行一次,表示一个具体的时间点,后面加上一个时间间隔,表示在这个时间间隔后事件发生。
  • EVERY 子句:用于事件在指定时间区间内每隔多长时间发生一次,其中 STARTS 子句用于指定开始时间;ENDS 子句用于指定结束时间。
  • interval:一般用于周期性执行,表示一个从现在开始的时间,其值由一个数值和单位构成。例如,使用“4 WEEK”表示 4周,使用“'1:10’HOUR_MINUTE”表示 1 小时 10 分钟。间隔的长短用 DATE_ADD() 函数支配。

interval 参数可以是以下值:

YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND

一般情况下,不建议使用不标准(以上没颜色)的时间单位。

例 1
在 test 数据库中创建一个名称为 e_test 的事件,用于每隔 5 秒向表 tb_eventtest 中插入一条数据。

创建 tb_eventtest 表,SQL 语句和运行结果如下:

mysql> CREATE TABLE tb_eventtest(-> id INT(11) PRIMARY KEY AUTO_INCREMENT,-> user VARCHAR(20),-> createtime DATETIME);

创建 e_test 事件,SQL 语句和运行结果如下:

mysql> CREATE EVENT IF NOT EXISTS e_test ON SCHEDULE EVERY 5 SECOND-> ON COMPLETION PRESERVE-> DO INSERT INTO tb_eventtest(user,createtime)VALUES('MySQL',NOW());

创建事件后,查询 tb_eventtest 中的数据,SQL 语句和运行结果如下:

mysql> SELECT * FROM tb_eventtest;
+----+-------+---------------------+
| id | user  | createtime          |
+----+-------+---------------------+
|  1 | MySQL | 2020-05-21 10:41:39 |
|  2 | MySQL | 2020-05-21 10:41:44 |
|  3 | MySQL | 2020-05-21 10:41:49 |
|  4 | MySQL | 2020-05-21 10:41:54 |
+----+-------+---------------------+

从结果可以看出,系统每隔 5 秒插入一条数据,这说明事件创建执行成功了。

例2:

-- 创建事件每隔月12个清空一次charge_log表:
CREATE EVENT IF NOT EXISTS delete_log
ON SCHEDULE
EVERY 12 MONTH STARTS '2020-12-31 23:00:00'
DO
TRUNCATE TABLE charge_log;

例3:

-- 创建事件,每个月月底,把月销置0:
CREATE EVENT IF NOT EXISTS delete_sale
ON SCHEDULE
EVERY 1 MONTH STARTS '2020-06-30 23:50:00'
DO
UPDATE pizza set sale=0;

17、MySQL创建,执行事件相关推荐

  1. mysql事件计划自动_逐步讲解MySQL中定时事件计划的创建

    一.使用过程1.查看当前是否已开启事件计划(调度器)有3种方法: SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; SH ...

  2. mysql查看执行计划任务_MySQL_MySQL计划任务(事件调度器) Event Scheduler介绍,要查看当前是否已开启事件调 - phpStudy...

    MySQL计划任务(事件调度器) Event Scheduler介绍 要查看当前是否已开启事件调度器,可执行如下SQL: SHOW VARIABLES LIKE 'event_scheduler'; ...

  3. mysql 创建端口号_MySQL命令行 不同端口登录 执行SQL文件 创建用户 赋予权限 修改root密码...

    0.安装MySQL服务 1.[不同端口登录] 通过开始菜单-> 程序-> MySQL-> MySQL Command Line Client 通过输入密码Enter password ...

  4. 关于mysql触发器的问题:执行事件插入的字段是否一定要满足字段的所有约束条件?

    首先是一个product表,如下: mysql> show create table product\G *************************** 1. row ********* ...

  5. mysql 触发器采坑记录(mysql 触发器采坑记录 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行。 当创建触发器(视图、存储过程、函数)时,如果没有)

    mysql 触发器采坑记录(语序有点凌乱,回头再整理) 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行. 当创建触发器(视图.存储过程.函数)时,如果没有指定创建 ...

  6. 【文档】七、Mysql Binlog不同事件类型的事件内容

    2019独角兽企业重金招聘Python工程师标准>>> 下面主要讲述了每个类型的事件中的固定和可变部分的数据. Start_log_event_v3/START_EVENT_V3 这 ...

  7. mysql怎么执行任务_Mysql怎么定时执行任务

    我想实现每隔30秒执行以下下面sql update userinfo SET endtime=now()WHERE id='155'; 如何让mysql定时执行上面的sql语句呢! 一.查看event ...

  8. mysql 创建唯一索引_Mysql创建索引

    零:文章概要 这篇文章,主要是和大家一起去了解 索引,然后一起使用CREATE INDEX语法给数据库中的表创建一个索引. 一:先拿电话薄做个类比 假如,一个电话薄里面包含了一个城市的所有人的姓名和电 ...

  9. mysql定时执行存储过程

    mysql定时执行存储过程 查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件 ...

最新文章

  1. Java基础学习总结(16)——Java制作证书的工具keytool用法总结
  2. 如何将浮点数很好地格式化为String而没有不必要的十进制0?
  3. 数据中心供配电技术巡展南京站成功举办
  4. 讲讲排序(C++描述 )
  5. Java压缩html
  6. linux降内核版本_ubuntu16.04降级内核版本至3.13.0-85
  7. Linux命令----rpm
  8. php函数 call_user_func
  9. 英文操作系统中的乱码问题及其它
  10. 创建mysql数据库远程工具连接及ER图工具mysqlWorkbench使用
  11. AI量化交易(一)——量化交易简介
  12. 读养生四要有感《慎动篇》
  13. 电脑桌面打开计算机窗口,电脑怎么打开运行窗口
  14. 线性方法求欧拉数-POJ2478
  15. Element ui 组件库 使用技巧。
  16. win10系统升级没有声音?老司机教你怎么重新安装声卡驱动
  17. 不能打印机与计算机,电脑打印机无法打印
  18. python print用法可以不加引号吗_python的print函数不加括号吗
  19. 个人....LATEX常用数学符号
  20. python 安卓app 缺点_用python对android APP进行分析2

热门文章

  1. ML之DTRFRExtraTRGBR:基于四种算法(DT、RFR、ExtraTR、GBR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能
  2. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
  3. TF之CNN:利用sklearn(自带手写数字图片识别数据集)使用dropout解决学习中overfitting的问题+Tensorboard显示变化曲线
  4. 1.8 ionic3入门——测滑菜单(side menu)中的界面跳转
  5. NPOI Excel 导出学习 一 (基础导出)
  6. springmvc学习笔记(10)-springmvc注解开发之商品改动功能
  7. AS打开速度慢,AS项目导入慢,新建项目导入慢
  8. mysql查询时强制区分大小写
  9. 通过ctrl+r快速启动程序
  10. Python的数据处理学习(三)