Pertama-tama pertimbangkan komentar saya.
Postgres hingga dan termasuk 9.4 tidak dengan sendirinya mencatat stempel waktu saat baris dimasukkan atau diperbarui.
Ada beberapa kolom sistem di header baris yang dapat membantu dalam pekerjaan forensik. Urutan fisik baris (ctid
) bisa menjadi indikator jika tidak ada lagi yang terjadi pada tabel sejak itu. Dalam kasus sederhana, baris baru ditambahkan ke ujung fisik tabel saat disisipkan, jadi ctid
menunjukkan apa yang dimasukkan terakhir - sampai ada perubahan dalam tabel. Postgres bebas mengatur ulang urutan fisik baris sesuka hati, misalnya dengan VACUUM
. UPDATE
juga menulis versi baris baru, yang dapat mengubah posisi fisik. Versi baru tidak harus berada di akhir tabel. Postgres mencoba untuk menjaga versi baris baru pada halaman data yang sama jika memungkinkan (Pembaruan PANAS
) ...
Karena itu, berikut adalah kueri sederhana untuk mendapatkan secara fisik baris terakhir untuk tabel yang diberikan:
SELECT ctid, *
FROM big
ORDER BY ctid DESC
LIMIT 10;
Jawaban terkait di dba.SE dengan informasi terperinci:
- VACUUM mengembalikan ruang disk ke sistem operasi
- Bagaimana cara menguraikan ctid menjadi nomor halaman dan baris?
Masukkan ID transaksi xmin
semoga bermanfaat:
Jika Anda memiliki cadangan untuk DB uji dari tepat sebelum kejadian, yang akan berguna. Kembalikan status lama ke skema terpisah dari DB pengujian dan bandingkan tabel ...
Biasanya, saya menambahkan satu atau dua timestamptz
kolom ke tabel penting saat baris disisipkan, dan / atau saat terakhir diperbarui. Itu akan menjadi sangat berguna bagi Anda sekarang ...
Apa yang akan juga bagus untuk Anda:fitur "temporal" diperkenalkan dalam standar SQL dengan SQL:2011
. Tapi itu belum diterapkan di Postgres.
Ada halaman di Wiki Postgres .
Ada juga ekstensi tidak resmi di PGXN
. Saya belum mengujinya dan tidak bisa mengatakan seberapa jauh.
Postgres 9.5 memperkenalkan fitur untuk merekam melakukan stempel waktu (seperti @Craig berkomentar ). Harus diaktifkan secara manual sebelum mulai merekam.Panduan:
Dan beberapa fungsi untuk bekerja dengannya.