MySQL8 存储事件是一种存储对象类型,它是根据计划运行的任务。当您创建一个事件时,就是创建一个数据库对象,包含指定的 SQL 语句,这些语句在固定时间间隔内执行,并在特定时间开始和结束,类似于 Linux 的 cron 作业。
您可以在很多场景下使用 MySQL8 存储事件,例如优化数据库表、清理日志、归档数据或者生成指定报表等。
首先,我们通过编写一个简单的存储事件,来介绍存储事件的语法。
# 创建测试表 create table if not exists `try8_dev` (`try8_id` int, `try8_name` varchar(200)); # 编写一次性的存储事件示例 create event if not exists try8_event on schedule at current_timestamp do insert into `try8_dev` (try8_id, try8_name) values(1, now()); # 编写一个循环的存储事件示例,每1分钟执行一次,1小时后过期 create event if not exists try8_event on schedule every 1 minute starts current_timestamp ends current_timestamp + interval 1 hour do insert into `try8_dev` (try8_id, try8_name) values(1, now());
编写存储事件关键字说明:
# 查看线程状态 show processlist; # 启用存储事件的调度程序线程 set global event_scheduler = on; # 关闭存储事件的调度程序线程,所有的事件都不会执行 set global event_scheduler = off;
# 根据事件名查询 show create event try8_event; # 使用系统表查询 select * from information_schema.events where event_name = 'try8_event';
drop event if exists try8.try8_event;
# 修改存储事件 alter event try8_event on schedule at current_timestamp do insert into `try8_dev` (try8_id, try8_name) values(1, now()); # 禁用存储事件 alter event try8_event disable; # 激活存储事件 alter event try8_event enable; # 重命名存储事件 alter event try8_event rename to try8_event_new;
MySQL8教程 - MySQL8 存储事件,介绍 MySQL 和 MySQL8 数据库,从 MySQL8 存储事件概念开始,逐步到 MySQL8 存储事件示例等,通篇实用易懂,让 MySQL8 入门更加快速和简单。
《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。