-1

我不明白为什么当我尝试创建事件时我的 sql 返回此错误..
错误:# MySQL returned an empty result (ie no rows).

代码:


USE my_database;
CREATE EVENT IF NOT EXISTS `remove_inactives`
ON SCHEDULE EVERY 15 MINUTE
ON COMPLETION PRESERVE
ENABLE
DO

    DELETE FROM `inactive`
        WHERE `inactive` < DATE_SUB(NOW(), INTERVAL 15 MINUTE)
;
4

1 回答 1

0

问题可能是由于您的 where 子句没有引用表中的任何列inactive,因此

`inactive` < DATE_SUB(NOW(), INTERVAL 15 MINUTE

不产生任何结果。

我不确定你的列名是什么,但为了论证,我们假设它是 last_mod_time,在这种情况下,这个 SQL 语句可能会起作用:

DELETE FROM `inactive`
  WHERE `inactive`.last_mod_time < DATE_SUB(NOW(), INTERVAL 15 MINUTE)

如果您发现您的事件仍未被处理,请使用SHOW PROCESSLIST\G查看 event_scheduler 是否正在运行。

如果没有,则使用以下命令为当前运行的 mysqld 会话启动它:

mysql> SET GLOBAL event_scheduler = ON;

要使设置永久化,以便调度程序在 mysqld 启动时启动,请设置适当的服务器系统变量

于 2013-07-13T19:12:51.517 回答