千家信息网

mysql如何实现event

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下mysql如何实现event,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、开启mysql event
千家信息网最后更新 2025年11月07日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"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

事件 数据 篇文章 更新 最大 内容 字符 定时器 时间 语句 过程 长度 存储 不怎么 传统 大小 大部分 季度 常量 数据库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 外网服务器ip地址免费 软件开发可以考证吗 小敏家数据库系统概念 浩天下网络技术服务有限公司 nas服务器能够干什么 2014数据库对操作系统的要求 软件开发工程师招聘灞桥 畅捷通服务器登录不上去 网络安全保卫方案 软件开发算工业还是商业 恒为服务器制造 网络技术出现的原因 黑客攻击引起的网络安全问题 郑州程序软件开发靠谱吗 网络安全防护技术书籍 传感器数据实时写入数据库 网络安全方面的教育教学设计 navicat数据库字符表 服务器操作系统的特点和优缺点 怎么设置表格数据库备份 大兴区省电软件开发推荐 服务器插满内存不能开机 对于进军网络安全有什么建议 数据库连接池实现 资源环境遥感主题数据库 党员量化积分管理软件开发 戴尔x86服务器风扇 深圳市育鹏互联网科技有限公司 深圳市中美互联网科技公司 家用电脑有用服务器机箱的没有
0