Я хочу давать своим пользователям бонус каждый день в 00:01, поэтому я ищу автоматический c триггер в mysql для обновления бонусов у пользователей.
UPDATE users SET bonus = bonus + 10
Как можно я делаю это?
Спасибо
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;
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 ссылка