每天在特定时间自动触发 Mysql 查询

Posted

技术标签:

【中文标题】每天在特定时间自动触发 Mysql 查询【英文标题】:Auto Trigger a Mysql query every day at specific time 【发布时间】:2020-04-03 20:41:57 【问题描述】:

我想每天早上 00:01 给我的用户奖励,所以我在 mysql 中寻找一个自动触发器来更新用户的奖励。

UPDATE users SET bonus = bonus + 10

我该怎么做?

谢谢

【问题讨论】:

完成任务只需要一个 CRON 工作 您可以编写一个.sql 文件,在其中添加此查询并作为cron 作业及时运行。 【参考方案1】:

MySQL 有一个built-in scheduler,可用于根据给定的计划执行任务。

以下是如何为您的用例create a scheduled event:

create event grant_user_bonus_daily
on schedule every 1 day
starts current_date + interval 1 day + interval 1 minute -- starts tomorrow at 00:01
do
    update users set bonus = bonus + 10;

【讨论】:

【参考方案2】:

SET GLOBAL event_scheduler = ON;

例子:

CREATE EVENT test_event_02
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
ON COMPLETION PRESERVE
DO
   INSERT INTO messages(message,created_at)
   VALUES('Test MySQL Event 2',NOW());

完整教程here

MySQL官方link

【讨论】:

以上是关于每天在特定时间自动触发 Mysql 查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL如何创建每天0点自动运行的触发器?

在每天开始时自动创建表格行

如何在swift 3中每天在特定时间触发本地通知

请问,在mysql中如何查询每天固定时间段内的数据??

在mysql中如何查询每天固定时间段内的数据?

在mysql中如何查询每天固定时间段内的数据?