0

私はいくつかのグーグルをしましたが、実際には多くの関連情報を得ることができません。アクティビティに応じて特定の行を削除する日時を設定しようとしています。アクティブな場合、もう一度アクティブにしない限り、時間は後の時間にバンプされます。それ以外の場合は削除されます。アクティビティでアクティブ化(挿入/更新)されたときに行を並べ替えることができました。

前もって感謝します。

4

2 に答える 2

3

まず、削除する必要のある行が数百万行ある場合は、この更新/削除をトリガーにしないでください。挿入/更新でパフォーマンスが大幅に低下します。最適な場所ではありません。Filypeが提案したように、cronジョブを作成できます。または、すべてをMySQLに保持する場合は、MySQLイベントスケジューラを使用します。

MySQLでのイベントのスケジュールについて詳しくは、次のページにアクセスしてください:http: //dev.mysql.com/doc/refman/5.1/en/events.html

MySQLイベントを使用すると、MySQLで定期的にスケジュールを設定できます。

コードは次のようになります

 CREATE EVENT myevent
 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
 DO
  DELETE FROM MyTable Where Expired< NOW();
于 2012-04-25T12:04:18.470 に答える
0

これが提案です。まだ試していません。実際にレコードを削除するのではなく、deleted=1で行を更新することをお勧めします。

CREATE TRIGGER deleteInactiveRecords AFTER UPDATE,INSERT ON myTable
    FOR EACH ROW BEGIN
        DELETE FROM myTable WHERE updated < (updated-((60)*60*24))
    END;
于 2012-04-25T12:02:10.467 に答える