您可以在很多场景下使用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教程,主打原创,定期更新,全部免费,欢迎收藏学习和转载分享。