什么是“MySQL 事件”?

问题描述 投票:0回答:2

什么是“MySQL 事件”?它的目的是什么?它与“作业调度程序”有何不同?

许多关于 SO 的帖子和 MySQL 文档都描述了如何实现 MySQL 事件,但我只是对它们的目的感兴趣。

mysql database cron job-scheduling mysql-event
2个回答
18
投票

MySQL 事件提供了

scheduled tasks
cron jobs
的替代方案。

事件可用于创建备份、删除过时记录、聚合报告数据等。与在给定特定条件下执行的标准触发器不同,事件是由时间的流逝触发的对象,有时称为时间触发器。

请参阅下面的链接,解释了这里的所有内容:

http://phpmaster.com/working-with-mysql-events/


0
投票

事件是 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  |
+------+
© www.soinside.com 2019 - 2024. All rights reserved.