我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql如何实现event

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql如何实现event

小编给大家分享一下mysql如何实现event,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、开启mysql event(事件)

mysql> show variables like '%event_sch%';

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+
1 row in set (0.00 sec)

开启event(事件)

vi /etc/my.cnf
[mysql]
event_scheduler=on

重启数据库

service mysql restart

mysql> show variables like '%event_sch%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0.00 sec)

2、创建event

DELIMITER $$
CREATE event event_p2
ON SCHEDULE
EVERY 5 MINUTE
STARTS NOW()
DO
BEGIN
CALL p2(160105);
END$$
DELIMITER ;


3、查看event

mysql> show events\G;
*************************** 1. row ***************************
                  Db: report
                Name: event_p2
             Definer: root@localhost
           Time zone: SYSTEM
                Type: RECURRING
          Execute at: NULL
      Interval value: 1
      Interval field: MINUTE
              Starts: 2016-05-10 20:09:50
                Ends: NULL
              Status: ENABLED
          Originator: 1
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)

  1. CREATE EVENT [IF NOT EXISTS] event_name  

  2.     ON SCHEDULE schedule  

  3.     [ON COMPLETION [NOT] PRESERVE]  

  4.     [ENABLE | DISABLE]  

  5.     [COMMENT 'comment']  

  6.     DO sql_statement;  

  7. schedule:  

  8.     AT timestamp [+ INTERVAL interval]  

  9.   | EVERY interval [STARTS timestamp] [ENDS timestamp]  

  10. interval:  

  11.     quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |  

  12.               WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |  

  13.               DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}  

其中,
event_name:定时器名,最大长度64个字符,若未指定,则默认为当前的MySQL用户名(不区分大小写);

schedule:限定执行时间;

ON COMPLETION [NOT] PRESERVE:表示是否需要循环复用这个Event;

sql_statement:要执行的SQL语句(也可以使用存储过程代替传统的SQL语句);

comment:对该时间调度器的一个注释,最大长度64个字符;

【关闭事件】

ALTER EVENT event_name ON  COMPLETION PRESERVE DISABLE;  

【开启事件】

ALTER EVENT event_name ON  COMPLETION PRESERVE ENABLE;  


【删除事件】

DROP EVENT [IF EXISTS] event_name  


【注意】
:要使用定时器,MySQL的常量GLOBAL event_scheduler必须为on或者是1.


【范例】

1. 每天凌晨1点开始执行数据更新:

  1. CREATE EVENT [IF NOT EXISTS] E_testEvent_1   

  2.     ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)   

  3.     ON COMPLETION PRESERVE ENABLE   

  4.     DO  

  5.     BEGIN

  6.        call p2();

  7.     end ;

2. 每月第一天凌晨1点开始执行数据更新(使用存储过程):

  1. CREATE EVENT E_testEvent_2   

  2.     ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)  

  3.     ON COMPLETION PRESERVE ENABLE  

  4.     DO  

  5.     BEGIN  

  6.         CALL p2();

  7.     END  

3. 每季度第一天凌晨1点开始执行数据更新:

  1. CREATE EVENT E_testEvent_3    

  2.     ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),'-',ELT(QUARTER(CURDATE()),1,4,7,10),'-',1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR)  

  3.     ON COMPLETION PRESERVE ENABLE  

  4.     DO  

  5.         UPDATE _T_test SET col= 2 ;

以上是“mysql如何实现event”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql如何实现event

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何实现Spring Event(异步事件)

这篇文章主要介绍了如何实现Spring Event(异步事件)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-14

MySQL查看event执行记录的实现

目录1. 查看 EVENT 执行记录2. 示例3. 结论mysql 是一款流行的关系型数据库管理系统,它提供了许多功能来帮助用户管理和操作数据库。其中之一就是 EVENT事件,它允许用户在特定的时间间隔内自动执行指定的操作,类似于计划任务。
MySQL查看event执行记录的实现
2023-11-13

如何利用Storage Event实现页面间通信

这篇文章主要介绍了如何利用Storage Event实现页面间通信,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们都知道触发window.onstorage必须满足以下两个
2023-06-09

Javascript的Event Loop怎么实现

本篇内容主要讲解“Javascript的Event Loop怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript的Event Loop怎么实现”吧!一、四个概念1、Java
2023-06-22

JS event如何使用

在JavaScript中,事件可以使用以下方式来使用:1. HTML属性:可以将事件直接作为HTML元素的属性来使用。例如,可以使用onclick属性来定义一个元素的点击事件,如下所示:```html点击我```2. DOM属性:可以通过J
2023-08-14

MySQL如何实现JDBC

这篇文章主要为大家展示了“MySQL如何实现JDBC”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL如何实现JDBC”这篇文章吧。JDBC基础入门概念JDBC(Java DataBase
2023-06-29

如何正确使用Event Sourcing

在经历过采用Event Sourcing的项目后,我想和大家讨论一下,当我们提到Event Sourcing时,我们在说什么?再简单阐述一下这四个概念之间的关系。
Node.js框架2024-12-01

python中Event怎么实现线程间同步

这篇文章主要介绍“python中Event怎么实现线程间同步”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中Event怎么实现线程间同步”文章能帮助大家解决问题。前言:Event在pyt
2023-06-29

编程热搜

目录