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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

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

@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.


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