MySQL 自 5.1 版本起引入的 “事件(Event)”,就像给数据库装了个 “智能定时器”,能按设定的时间自动执行预设的 SQL 任务,用起来灵活又省心。它本质是一组 SQL 指令的集合,既可以设定 “只执行一次”(比如某晚凌晨 2 点自动备份上月订单数据),也能配置 “周期性循环”(比如每小时清理一次过期的临时验证码、每秒统计一次实时在线用户数)。
相比操作系统的计划任务(如 Windows 任务计划、Linux Crontab),这个 “数据库内置定时器” 的优势很突出 —— 它能精确到每秒执行一次,特别适合对实时性要求高的场景(比如电商平台的库存实时同步),而系统计划任务通常只能精确到分钟级。
不过它和触发器是 “同门不同岗”:触发器像个 “即时响应员”,数据库一有指定操作(如插入数据、修改字段)就立刻触发;事件则是 “按时上下班的调度员”,完全按预设的时间规则启动,因此也常被称作 “定时触发器”。
一、如何查看该事件?
在 MySQL 中,调度器 event_scheduler 负责调用事件.
输入:
SHOW VARIABLES LIKE 'event_scheduler'; -- 查看事件调度器的全局系统变量的状态。 SELECT @@event_scheduler; -- 功能完全同上,只是查询方法不一样。 SHOW PROCESSLIST; -- 显示当前MySQL服务器中所有正在运行的连接和线程的详细信息,调度器正常运行,目前没有执行事件。
一、如何修改该事件?
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
保存且重启即可完成修改。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程