什么是“MySQL 事件”?它的目的是什么?它与“作业调度程序”有何不同?
许多关于 SO 的帖子和 MySQL 文档都描述了如何实现 MySQL 事件,但我只是对它们的目的感兴趣。
MySQL 事件提供了
scheduled tasks
和 cron jobs
的替代方案。
事件可用于创建备份、删除过时记录、聚合报告数据等。与在给定特定条件下执行的标准触发器不同,事件是由时间的流逝触发的对象,有时称为时间触发器。
请参阅下面的链接,解释了这里的所有内容:
事件是 MySQL 中的计划任务。
例如,您创建
test
表,如下所示:
CREATE TABLE test (
num int
);
然后,插入
num
为1
的行,如下所示:
INSERT INTO test (num) VALUES (1);
现在,您创建
plus_one
事件,该事件从 1
开始每隔一秒将 num
添加到 2023-11-15 00:00:00
,如下所示。 *CREATE EVENT语句必须有DO语句和DO
语句必须有至少一个SQL语句,否则会出错,如果2023-11-15 00:00:00
已经通过,plus_one
事件开始将1
添加到num
创建 plus_one
事件后立即每隔一秒:
CREATE EVENT plus_one
ON SCHEDULE EVERY 1 SECOND
STARTS '2023-11-15 00:00:00'
DO UPDATE test SET num = num + 1;
然后,您可以检查
plus_one
事件每隔一秒将1
添加到num
,如下所示:
mysql> SELECT * FROM test;
+------+
| num |
+------+
| 23 |
+------+
mysql> SELECT * FROM test;
+------+
| num |
+------+
| 61 |
+------+