我正在尝试创建一个EVENT
以便每天按计划启动以更新表中的数据。我已使用event_scheduler
命令在MySQL中将SET GLOBAL event_scheduler = ON;
设置为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
,也会删除该事件。触发器永远不会执行一次。我正在Windows 10上运行XAMPP的MySQL。我不知道发生了什么。我在这里做什么错了?
答案 0 :(得分:1)
因此,事实证明它是XAMPP下MySQL的损坏文件。今天,当我尝试在PC上运行MySQL时,这些文件已损坏,直到重新安装后它才起作用。现在,该活动可以正常进行了。