每天在特定时间自动触发 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 查询的主要内容,如果未能解决你的问题,请参考以下文章