@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
. Это позволяет получить информацию о последней измененной таблице в базе данных.
@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.