Postgresには古いレコードの期限切れをサポートする機能がありますか?
2週間以上経過したレコード(ログイベント)が自動的に削除される一種のキューとして、ログにPostgresを使用したいと思います。
時間ベースのレジームで行を自動的に削除する機能は組み込まれていません(私が知っていることでしょう)。
毎日(あなたが決める)cron-jobを実行して、単純なDELETE
コマンドをスケジュールするか、 pgAgent 目的のため。
または、 partitioning を週単位のパーティションで使用できます マスターテーブルから継承 、それを呼び出すことができますlog
。それは削除を非常に安価にします:最近の2週間を保持して古いパーティションを削除します。
システム時刻に基づいてINSERTを現在の週のパーティションにリダイレクトするマスターテーブルにRULE
またはTRIGGER
を作成します。常にマスターテーブルlog
にログインします。事前に子テーブルを作成します。その数週間前に確認し、毎週のcronジョブを実行して、将来の子テーブルを追加します...
マニュアルのコード例 があります。
テーブルを自動的に作成するplpgsql関数の関連する回答:
関連するソリューションは、RULE
を再作成してINSERTをリダイレクトします。トリガー関数は、現在のパーティションに動的に書き込むことができます...