MySQL无法创建事件

时间:2019-07-09 10:13:35

标签: mysql events xampp mariadb

我正在尝试创建一个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。我不知道发生了什么。我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

因此,事实证明它是XAMPP下MySQL的损坏文件。今天,当我尝试在PC上运行MySQL时,这些文件已损坏,直到重新安装后它才起作用。现在,该活动可以正常进行了。