1

「regkeys」という名前の MySQL テーブルがあります。このテーブルには、「keyCat」と「keyNum」の 2 つの列があります。私の Web アプリには、キー (1134fb) とカテゴリ (mds または dts など) をこのテーブルに追加する keygen モジュールがあります。

私が達成したいのはこれです: キーを発行 (db に追加) した後、MySQL イベントを作成して、テーブルに 2 日以上 (またはそれ以上) 滞在/滞在したキーを削除したいと思います。キーの有効期限が切れる (例: - 作成された時点から 2 日間カウントすると、各キーを削除する必要があり、作成された時期に応じて特定のキーが他のキーよりも早くまたは遅く削除されます)。MySQL の APIを調べましたが、ロジックについて助けが必要です。2 日間 (またはそれくらい) 保存されたキーのみを削除するようにイベントに指示する方法がわかりません。誰かが簡単な例を教えてくれるか、明確なチュートリアルに案内してくれることを望んでいました.

事前にどうもありがとうございました。

編集済み:私の問題に少し役立つこの他の質問を見つけたと思います。私はそれを間違った方法で行っていたと思います(キーベース)。すべてのキーとキー カテゴリが行に挿入されるため、スケジューラはキーではなく行を処理する必要があります。

4

1 に答える 1

4

これが解決策です:

  1. 次のようにデータベースで event_scheduler を有効にしました。SET GLOBAL event_scheduler = ON;
  2. MySQL のデフォルト値を使用してテーブルにタイムスタンプ列を追加しました
  3. イベントを作成しましたが、 CREATE EVENT <name>
  4. 次のようなスケジュールで実行するイベントを呼び出します。ON SCHEDULE EVERY 20 SECOND
  5. イベントに SQL クエリを追加しますDO DELETE FROM <table_name> WHERE <time_stamp_column> < NOW() - INTERVAL 5 MINUTE
于 2013-09-10T00:48:29.517 に答える