Първо разгледайте коментара ми.
Postgres до и включително 9.4 сам по себе си не записва клеймото за време, когато редовете са били вмъкнати или актуализирани.
Има някои системни колони в заглавките на редовете които могат да помогнат в криминалистичната работа. Физическият ред на редовете (ctid
) може бъде индикатор дали нищо друго не се е случило с масата оттогава. В прости случаи нови редове се добавят към физическия край на таблица, когато се вмъкнат, така че ctid
показва какво е вмъкнато последно - докато нещо не се промени в таблицата. Postgres е свободен да пренарежда физическия ред на редовете по желание, например с VACUUM
. Всеки UPDATE
също така записва нова версия на ред, която може да промени физическата позиция. Не е задължително новата версия да е в края на таблицата. Postgres се опитва да запази новата версия на реда на същата страница с данни, ако е възможно (ГОРЕЩА актуализация
) ...
Въпреки това, ето проста заявка за получаване на физически последните редове за дадена таблица:
SELECT ctid, *
FROM big
ORDER BY ctid DESC
LIMIT 10;
Свързани отговори на dba.SE с подробна информация:
- VACUUM връща дисковото пространство на операционната система
- Как да разложа ctid на номера на страници и редове?
Вмъкнатият идентификатор на транзакция xmin
може да бъде полезно:
Ако случайно имате резервно копие за тестовата база данни точно преди инцидента, това би Бъди полезен. Възстановете старото състояние в отделна схема на тестовата DB и сравнете таблиците ...
Обикновено добавям един или два timestamptz
колони към важни таблици за това кога редът е бил вмъкнат и/или кога е бил актуализиран последния път. Това би да бъде изключително полезно за вас точно сега...
Каквоби също ще бъде страхотно за вас:"временните" функции, въведени в SQL стандарта със SQL:2011
. Но това все още не е внедрено в Postgres.
Има страница в Postgres Wiki .
Има и неофициално разширение на PGXN
. Не съм го тествал и не мога да кажа докъде е.
Postgres 9.5 въвежда функция за записване на времеви отпечатъци за ангажиране (като @Craig коментира ). Трябва да се активира ръчно, преди да започне да записва.Ръководството:
И някои функции за работа с него.