sql >> データベース >  >> RDS >> Mysql

MySQLから古い行をローリングベースで削除する最良の方法は何ですか?

    必要な時間間隔の後にデータベースで自動的に実行されるイベントを作成してみてください。

    次に例を示します。列エントリ「datetime」を持つテーブル「tableName」から30日以上経過したエントリを削除する場合。次に、次のクエリが毎日実行され、必要なクリーンアップアクションが実行されます。

    CREATE EVENT AutoDeleteOldNotifications
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY 
    ON COMPLETION PRESERVE
    DO 
    DELETE LOW_PRIORITY FROM databaseName.tableName WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY)
    

    ON COMPLETION PRESERVEを追加する必要があります 各実行後にイベントを保持します。詳細については、次を参照してください: http://www.mysqltutorial .org / mysql-triggers / working-mysql-scheduled-event /



    1. APEX_ZIPの例

    2. アプリのデータベースは常に必要ですか?

    3. SQLServerの文字列から日付への変換

    4. PostgreSQLでのPOSITION()のしくみ