是什么?事件是一组SQL集合,简单说就是mysql中的定时器,时间到了就执行。

一:查询事件变量

  如果查询不到变量,说明数据库版本过低,不支持事件。

SHOW VARIABLES LIKE 'event_scheduler';
#开启事件,如果想要每次重启数据库服务后,事件仍然生效需要在mysql.ini文件中加入event_scheduler = ON; 的语句
SET GLOBAL event_scheduler = ON;
#查询数据库所有创建的事件
SELECT * FROM mysql.event;
#启用事件任务
ALTER EVENT event1 ENABLE;
#禁用事件任务
ALTER EVENT event1 DISABLE;
#查看事件的定义
SHOW CREATE EVENT event1;

二:创建事件语法

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}

说明:

  #DEFINER:定义事件执行的时候检查权限的用户。
  #event_name:表示事件名称
  #SCHEDULE:表示触发点,AT timestamp一般用于只执行一次。EVERY interval一般用于周期性执行,可以设定开始时间和结束时间。
  #ON COMPLETION PRESERVE:表示任务执行之后仍保留
  #ON COMPLETION NOT PRESERVE:表示任务执行完成后不保留
  #ENABLE|DISABLE:表示设置启用或者禁止这个事件。
  #COMMENT:添加注释

三:测试表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(200) NOT NULL COMMENT '收货人',
`address` VARCHAR(100) NOT NULL COMMENT '收货地址',
`addtime` DATETIME NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8; #清空表
TRUNCATE TABLE `user`;

四:测试存储过程

DELIMITER $$
DROP PROCEDURE IF EXISTS `ADD_USER`$$
CREATE PROCEDURE `ADD_USER`()
BEGIN
INSERT INTO `user`(NAME, address,ADDTIME) VALUES('AT','AT',NOW());
END$$
DELIMITER ;

五:事件案列

#1.每隔3秒
DROP EVENT IF EXISTS `event1`;
DELIMITER ;;
CREATE EVENT `event1` ON SCHEDULE EVERY 3 SECOND ON COMPLETION PRESERVE DISABLE COMMENT ''
DO
BEGIN
INSERT INTO `user`(NAME, address,ADDTIME) VALUES('test1','test1',NOW());
END
;;
DELIMITER ;
#2.每天几点几分
DROP EVENT IF EXISTS `event2`;
DELIMITER ;;
CREATE EVENT `event2` ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(),INTERVAL 3 HOUR),INTERVAL 30 MINUTE) ON COMPLETION PRESERVE ENABLE COMMENT ''
DO
BEGIN
CALL ADD_USER();
END
;;
DELIMITER ;

#9号凌晨1点
SELECT DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-9 DAY),INTERVAL 1 HOUR);
#1分钟后
SELECT NOW()+INTERVAL 1 MINUTE;
#凌晨3点
SELECT DATE_ADD(CURDATE(),INTERVAL 3 HOUR);
#凌晨3点30分
SELECT DATE_ADD(DATE_ADD(CURDATE(),INTERVAL 3 HOUR),INTERVAL 30 MINUTE);

MySQL-事件总结的更多相关文章

  1. mysql 事件

    经常要周期性的执行某一个命令或者SQL语句.mysql事件,mysql的版本是5.1以上. 首先要查看事件是否开启了, SHOW VARIABLES LIKE 'event_scheduler'; S ...

  2. MySQL事件 Events

    MySQL事件 Events   一.关键字: EVENT   二.语法: CREATE EVENT? [IF NOT EXISTS ] //如果不存在则创建 event_name? ON SCHED ...

  3. Mysql事件学习

    出自:http://blog.chinaunix.net/uid-20639775-id-3323098.html Mysql事件学习 在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQ ...

  4. mysql 事件调度器

    1.mysql事件调度器,也就是计划任务,计划做某事,有两种方式: 2.在某个时间点做某事,AT TIMESTAMP [+ INTERVAL INTERVAL] 某个时间点加上偏移. 3.定时地做某事 ...

  5. mysql事件调度器

    #查看mysql事件调度器是否开启 SHOW VARIABLES WHERE Variable_name = 'event_scheduler'; #开启mysql事件调度器功能 SET GLOBAL ...

  6. MySQL事件【转载】

    在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句.对于linux系统熟悉的人都知道linux的cron计划任务,能很方便地实现定期运行指定命令的功能.Mysql在5.1以后推出了 ...

  7. MySQL事件调度器event的使用

    Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...

  8. mysql事件关闭解决办法

    Mysql 事件event_scheduler是OFF 开启 Event Scheduler,以下4种方式等效 SET GLOBAL event_scheduler = ON; SET @@globa ...

  9. 修改MySQL事件

    MySQL允许您更改现有事件的各种属性. 要更改现有事件,请使用ALTER EVENT语句,如下所示: ALTER EVENT event_name ON SCHEDULE schedule ON C ...

  10. MySQL事件的先后

    今天闲聊之时 提及MySQL事件的执行,发现一些自己之前没有注意的细节 如果在执行事件过程中,如果insert的存储过程发生意外 会如何 USE iot2; CREATE TABLE aaaa (ti ...

随机推荐

  1. Graphics 绘图

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等 ...

  2. BestCoder Round #92 (hdu 6015 6016)

    比赛链接 A题主要是map的使用,比赛的时候问了下队友,下次要记住了 #include<bits/stdc++.h> using namespace std; typedef long l ...

  3. map简单用法

    let familyNames = []; familyNames = res.Data.map(item=> { return item.ArgText });

  4. web uploader 上传大文件总结

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  5. “pod repo push”遇到的2个问题的解决方案

    podspec文件push到遇到的第一个问题,将进行记录,主要是参考了下面大神的解决方案,主要是为了方便学习和记录 第一个问题: xcrun: error: invalid active develo ...

  6. [CSP-S模拟测试]:小奇的仓库(warehouse)(树形DP)

    题目背景 小奇采的矿实在太多了,它准备在喵星系建个矿石仓库.令它无语的是,喵星系的货运飞船引擎还停留在上元时代! 题目描述 喵星系有$n$个星球,星球以及星球间的航线形成一棵树.从星球$a$到星球$b ...

  7. 前端每日实战:19# 视频演示如何用纯 CSS 创作一种有削铁如泥感觉的菜单导航特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/XqYroe 可交互视频教程 此视频 ...

  8. linux设备驱动第三篇:写一个简单的字符设备驱动

          在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分 ...

  9. 题解 P1017 【进制转换】

    我赶jio这个题难道是让我们写快写? 不管了,赶紧把咕咕咕了一万年的题解写出来. 这个题就是考察负进制和在mod意义下的除法运算的基础运算. (其实也没多大问题) 首先我们先假设一个原始数据\(num ...

  10. Visual Studio Code - 调试 Node.js 代码

    官方的文档写的太好了!大家还是看参考资料吧. 参考资料: Debugging in Visual Studio Code Debug Node.js Apps using Visual Studio ...