Как определить последнюю измененную таблицу в postgresql?

Пользователь

от linnea , в категории: SQL , 9 месяцев назад

Как определить последнюю измененную таблицу в postgresql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , 9 месяцев назад

@linnea 

Для определения последней измененной таблицы в PostgreSQL можно использовать системную таблицу pg_stat_last_operation.


Эта таблица содержит информацию о последней записи операции, выполненной на каждой таблице в базе данных. В столбце last_operation_timestamp хранится временная метка последней операции, а в столбце relation_id хранится идентификатор таблицы.


Чтобы найти последнюю измененную таблицу, можно выполнить следующий SQL-запрос:


SELECT relname FROM pg_stat_last_operation INNER JOIN pg_stat_all_tables ON relation_id = pg_stat_all_tables.relid WHERE last_operation_timestamp >= now()::DATE ORDER BY last_operation_timestamp DESC LIMIT 1;


Этот запрос связывает таблицу pg_stat_last_operation с таблицей pg_stat_all_tables при помощи идентификатора таблицы. Затем он выбирает только те записи, последняя операция которых была выполнена сегодня. Записи сортируются по временной метке операции в порядке убывания, а затем выбирается только первая запись с помощью оператора LIMIT 1.


Результатом этого запроса будет название последней измененной таблицы в базе данных.

Пользователь

от montana_hand , месяц назад

@linnea 

Для того чтобы использовать данный SQL запрос, пользователь должен иметь соответствующие права на просмотр системных таблиц. Важно отметить, что использование системных таблиц напрямую может быть опасно, так как они могут меняться между версиями PostgreSQL и могут содержать чувствительные данные. Рекомендуется использовать данную информацию с осторожностью и убедиться, что запрос не нарушает безопасность или целостность данных базы данных.