Автоматический запуск запроса Mysql каждый день в указанное время c - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу давать своим пользователям бонус каждый день в 00:01, поэтому я ищу автоматический c триггер в mysql для обновления бонусов у пользователей.

UPDATE users SET bonus = bonus + 10

Как можно я делаю это?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

MySQL имеет встроенный планировщик , который можно использовать для выполнения задач в соответствии с заданным расписанием.

Вот как создать запланированное событие для вашего случая использования:

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;
0 голосов
/ 03 апреля 2020

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());

Полный учебник здесь

Официальный MySQL ссылка

...