Postgres 9,5 или новее
Вы можете включить track_commit_timestamp
в postgresql.conf
(и перезапустить), чтобы начать отслеживать отметки времени фиксации.Затем вы можете получить метку времени для вашего xmin
.Связанный ответ:
Postgres 9,4 или старше
Таких метаданных нетPostgreSQL, если вы не записали его самостоятельно.
Вы можете получить некоторую информацию из заголовков строк (HeapTupleHeaderData) , в частности из идентификатора транзакции вставки xmin
.Он содержит идентификатор транзакции, в которую была вставлена строка (необходим для определения видимости в модели MVCC PostgreSQL).Попробуйте (для любой таблицы):
SELECT xmin, * FROM tbl LIMIT 10;
Существуют некоторые ограничения:
- Если база данных была выгружена и восстановлена, то, очевидно, информация исчезла - все строки вставляются вта же транзакция.
- Если база данных огромна / очень старая / очень сильно написана, то, возможно, она прошла через перенос идентификатора транзакции , а порядок чисел в
xmin
неоднозначен.
Но для большинства баз данных вы должны получить:
- хронологический порядок вставок
- , какие строки были вставлены вместе
- когда (возможно) был большой промежуток времени между вставками
Хотя отметки времени нет.