Как найти время создания таблицы в Postgresql.
Пример,
Если я создал файл, я могу найти время создания файла таким образом, чтобы узнать время создания таблицы.
Как найти время создания таблицы в Postgresql.
Пример,
Если я создал файл, я могу найти время создания файла таким образом, чтобы узнать время создания таблицы.
Я просмотрел таблицы pg_ *, и я не мог найти там времени создания. Возможно найти файлы таблиц, но тогда в Linux вы не сможете получить время создания файла. Поэтому я думаю, что ответ заключается в том, что вы можете найти эту информацию только в Windows, выполнив следующие шаги:
select datname, datdba from pg_database;
select relname, relfilenode from pg_class;
<PostgreSQL folder>/main/base/<database id>/<table filenode id>
(не уверен, что это такое в Windows).Вы не можете - информация не записывается нигде. Просмотр файлов таблицы не обязательно даст вам правильную информацию - есть операции с таблицами, которые создадут для вас новый файл, и в этом случае дата будет reset.
Я не думаю, что это возможно изнутри PostgreSQL, но вы, вероятно, найдете его в течение времени создания основного файла таблицы.
SELECT oid FROM pg_database WHERE datname = 'mydb';
Тогда (если oid
равно 12345):
ls -l $PGDATA/base/12345/PG_VERSION
Это обходное решение предполагает, что PG_VERSION
является наименее вероятным изменением после создания.
NB: Если PGDATA
не определен, проверьте Где хранит базу данных PostgreSQL?
Вы можете получить это из pg_stat_last_operation. Вот как это сделать:
select * from pg_stat_last_operation where objid = 'table_name'::regclass order by statime;
В этой таблице хранятся следующие операции:
select distinct staactionname from pg_stat_last_operation;
staactionname
---------------
ALTER
ANALYZE
CREATE
PARTITION
PRIVILEGE
VACUUM
(6 rows)
- запрос
select pslo.stasubtype, pc.relname, pslo.statime
from pg_stat_last_operation pslo
join pg_class pc on(pc.relfilenode = pslo.objid)
and pslo.staactionname = 'CREATE'
Order By pslo.statime desc
поможет достичь желаемых результатов
(попробовал это на greenplum)