Я пытаюсь создать EVENT
для запуска по расписанию каждый день для обновления данных в таблице.Я установил event_scheduler
ON в MySQL с помощью команды SET GLOBAL event_scheduler = ON;
, и это то, что я вижу, когда запускаю следующее:
MariaDB [hr]> SHOW PROCESSLIST;
+-----+-----------------+-----------+------+---------+-------+--------------------------+------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+-----+-----------------+-----------+------+---------+-------+--------------------------+------------------+----------+
| 1 | system user | | NULL | Daemon | NULL | InnoDB purge coordinator | NULL | 0.000 |
| 2 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 3 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 4 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 5 | system user | | NULL | Daemon | NULL | InnoDB shutdown handler | NULL | 0.000 |
| 228 | event_scheduler | localhost | NULL | Daemon | 10486 | Waiting on empty queue | NULL | 0.000 |
| 613 | root | localhost | hr | Query | 0 | Init | SHOW PROCESSLIST | 0.000 |
+-----+-----------------+-----------+------+---------+-------+--------------------------+------------------+----------+
7 rows in set (0.000 sec)
Итак, event_scheduler действительно работает.Вот как я создаю триггер:
CREATE EVENT update_attendance
ON SCHEDULE
EVERY 1 MINUTE
DO
UPDATE attendance SET markedAttendance = 1;
Когда я запускаю это, он говорит Query OK, 0 rows affected (0.000 sec)
, но когда я запускаю SHOW EVENTS
, он возвращает пустой набор.Также, если я делаю DROP update_attendance
, это событие сбрасываетТриггер никогда не выполняется ни разу.Я использую MySQL для XAMPP в Windows 10. Я не понимаю, что происходит.Что я тут не так делаю?