MySQL 自 5.1 版本起引入的 “事件(Event)”,就像给数据库装了个 “智能定时器”,能按设定的时间自动执行预设的 SQL 任务,用起来灵活又省心。它本质是一组 SQL 指令的集合,既可以设定 “只执行一次”(比如某晚凌晨 2 点自动备份上月订单数据),也能配置 “周期性循环”(比如每小时清理一次过期的临时验证码、每秒统计一次实时在线用户数)。

相比操作系统的计划任务(如 Windows 任务计划、Linux Crontab),这个 “数据库内置定时器” 的优势很突出 —— 它能精确到每秒执行一次,特别适合对实时性要求高的场景(比如电商平台的库存实时同步),而系统计划任务通常只能精确到分钟级。

不过它和触发器是 “同门不同岗”:触发器像个 “即时响应员”,数据库一有指定操作(如插入数据、修改字段)就立刻触发;事件则是 “按时上下班的调度员”,完全按预设的时间规则启动,因此也常被称作 “定时触发器”。


一、如何查看该事件?

在 MySQL 中,调度器 event_scheduler 负责调用事件.

输入:

SHOW VARIABLES LIKE 'event_scheduler';  -- 查看事件调度器的全局系统变量的状态。
SELECT @@event_scheduler;   -- 功能完全同上,只是查询方法不一样。
SHOW PROCESSLIST;   -- 显示当前MySQL服务器中所有正在运行的连接和线程的详细信息,调度器正常运行,目前没有执行事件。

查看调度器是否开启

查看调度器是否开启

image.png


一、如何修改该事件?

1.通过SET全局参数event_scheduler进行修改;

SET GLOBAL event_scheduler = ON;   -- 打开调度器

2.修改配置文件:

在my.ini(默认路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini)找到[mysqld]

添加

event_scheduler = ON

保存且重启即可完成修改。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)