MySQL 无法创建 EVENT
MySQL Cannot create EVENTs
我正在尝试创建一个 EVENT
以每天按计划启动以更新 table 中的数据。我已经使用 SET GLOBAL event_scheduler = ON;
命令在 MySQL 中设置了 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
它returns一个空集。另外,如果我执行 DROP update_attendance
它会删除该事件。触发器永远不会执行一次。我是 运行ning XAMPP 的 MySQL 在 Windows 10。我不明白发生了什么。我在这里做错了什么?
原来是XAMPP下MySQL的损坏文件。当我今天在我的 PC 上尝试 运行 MySQL 时,文件已损坏并且在我重新安装之前无法使用。现在活动正常进行了。
我正在尝试创建一个 EVENT
以每天按计划启动以更新 table 中的数据。我已经使用 SET GLOBAL event_scheduler = ON;
命令在 MySQL 中设置了 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
它returns一个空集。另外,如果我执行 DROP update_attendance
它会删除该事件。触发器永远不会执行一次。我是 运行ning XAMPP 的 MySQL 在 Windows 10。我不明白发生了什么。我在这里做错了什么?
原来是XAMPP下MySQL的损坏文件。当我今天在我的 PC 上尝试 运行 MySQL 时,文件已损坏并且在我重新安装之前无法使用。现在活动正常进行了。