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

Auto Trigger a Mysql query every day at specific time

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

UPDATE users SET bonus = bonus + 10

我该怎么做?

谢谢

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

官方MySQLlink

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;