-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

inactiveこの問題は、where 句がテーブル内の列を参照していないことが原因である可能性が高いため、

`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 に答える