MySQL8 存储事件

MySQL8 存储事件,MySQL8教程,MySQL8 存储事件和示例。

【全栈教程】:https://try8.cn/article
教程目录:
教程内容:
最近更新:2023-04-17

一、MySQL8 存储事件介绍

MySQL8 存储事件是一种存储对象类型,它是根据计划运行的任务。当您创建一个事件时,就是创建一个数据库对象,包含指定的 SQL 语句,这些语句在固定时间间隔内执行,并在特定时间开始和结束,类似于 Linux 的 cron 作业。


1.1、存储事件特性

您可以在很多场景下使用 MySQL8 存储事件,例如优化数据库表、清理日志、归档数据或者生成指定报表等。

  • 存储事件名称唯一,根据时间表执行特定操作;
  • 存储事件默认定义者是创建事件的用户;
  • 存储事件支持指定权限,支持创建、修改和删除等操作。


二、MySQL8 存储事件教程

2.1、创建存储事件

首先,我们通过编写一个简单的存储事件,来介绍存储事件的语法。

# 创建测试表
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());


编写存储事件关键字说明:

  • create event on schedule:用于创建存储事件,该关键字后面指定名称;
  • every 1 minute:执行方式,如每分钟一次;
  • starts:开始时间;
  • ends:结束时间;
  • do:需要执行的 SQL 正文。


2.2、启用调度线程

# 查看线程状态
show processlist;
# 启用存储事件的调度程序线程
set global event_scheduler = on;
# 关闭存储事件的调度程序线程,所有的事件都不会执行
set global event_scheduler = off;


2.3、查看存储事件

# 根据事件名查询
show create event try8_event;
# 使用系统表查询
select * from information_schema.events where event_name = 'try8_event';


2.4、删除存储事件

drop event if exists try8.try8_event;


2.5、修改存储事件

# 修改存储事件
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教程 - MySQL8 存储事件,介绍 MySQL 和 MySQL8 数据库,从 MySQL8 存储事件概念开始,逐步到 MySQL8 存储事件示例等,通篇实用易懂,让 MySQL8 入门更加快速和简单。


《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。