55

私はこのストアドプロシージャを持っています。たとえば、これを5秒間隔で実行するにはどうすればよいですか? タイムスタンプが 1 日より古いデータを削除するルーチンのようなものですか?

DROP PROCEDURE IF EXISTS `delete_rows_links` 
GO

CREATE PROCEDURE delete_rows_links
BEGIN 

    DELETE activation_link
    FROM activation_link_password_reset
    WHERE  TIMESTAMPDIFF(DAY, `time`, NOW()) < 1 ; 

END 

GO
4

4 に答える 4

80

mysql スケジューラを使用して、5 秒ごとに実行できます。サンプルはhttp://dev.mysql.com/doc/refman/5.1/en/create-event.htmlにあります。

使用したことはありませんが、これが機能することを願っています:

CREATE EVENT myevent
    ON SCHEDULE EVERY 5 SECOND
    DO
      CALL delete_rows_links();
于 2011-07-03T01:55:41.090 に答える
15

私はこのクエリを使用しましたが、うまくいきました:

CREATE EVENT `exec`
  ON SCHEDULE EVERY 5 SECOND
  STARTS '2013-02-10 00:00:00'
  ENDS '2015-02-28 00:00:00'
  ON COMPLETION NOT PRESERVE ENABLE
DO 
  call delete_rows_links();
于 2013-02-09T23:35:27.917 に答える
3

DB 以外のソリューションを受け入れる場合: プロシージャを呼び出すスクリプトを実行する cron ジョブを設定できます。

于 2011-07-03T01:56:41.730 に答える