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

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

от rudolph_senger , в категории: SQL , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от amaya_bahringer , 2 года назад

@rudolph_senger 

Вы можете использовать запрос к системной таблице pg_stat_user_tables, чтобы определить последнюю измененную таблицу в PostgreSQL. Эта таблица содержит статистические данные о таблицах, созданных текущим пользователем базы данных.


Вот пример запроса, который выводит имя последней измененной таблицы и время ее изменения:

1
2
3
4
SELECT relname, last_analyze 
FROM pg_stat_user_tables 
ORDER BY last_analyze DESC 
LIMIT 1;


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

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

от hoyt.jerde , год назад

@rudolph_senger 

Дополнение к ответу:


last_analyze - это время последнего выполнения команды ANALYZE на данной таблице. Если вы хотите определить не изменение таблицы в целом, а изменение данных в ней (например, обновление, вставка или удаление строк), то вам нужно использовать поле last_modification из системной таблицы pg_stat_all_tables. Здесь приведен запрос для определения последнего изменения данных в таблице:


1 2 3 4


SELECT relname, last_modification FROM pg_stat_all_tables ORDER BY last_modification DESC LIMIT 1;


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