データでいっぱいの既存のPostgresデータベースを継承しました。ほとんどのデータには「created_date」列の値があります。以前のデータの一部は、これが追跡される前に挿入されました。
INSERT
クエリがいつ行われたかを追跡するPostgresメタデータテーブルがどこかに隠されていますか?
データでいっぱいの既存のPostgresデータベースを継承しました。ほとんどのデータには「created_date」列の値があります。以前のデータの一部は、これが追跡される前に挿入されました。
INSERT
クエリがいつ行われたかを追跡するPostgresメタデータテーブルがどこかに隠されていますか?
有効化 (および再起動) して、コミット タイムスタンプの追跡を開始できtrack_commit_timestamp
ますpostgresql.conf
。次に、のタイムスタンプを取得できますxmin
。関連する回答:
自分で記録しない限り、PostgreSQL にはそのようなメタデータはありません。
行ヘッダー (HeapTupleHeaderData)から、特に挿入トランザクション ID から、いくつかの情報を推測できる場合があります。行が挿入されたトランザクションの ID を保持します (PostgreSQL のMVCCモデルで可視性を決定するために必要です)。試してください(任意のテーブルに対して):xmin
SELECT xmin, * FROM tbl LIMIT 10;
いくつかの制限が適用されます:
xmin
があいまいです。しかし、ほとんどのデータベースでは、以下を導出できるはずです。
ただし、タイムスタンプはありません。
短い答え:いいえ。
もしあれば、誰もが追跡したくないすべてのテーブルのスペースの無駄だと文句を言うでしょう。