Select только тех записей из таблицы которые были изменены. Postgres

Можно конечно добавить к таблице с данными зависимую таблицу с полями для хранения изменений.

Но можно ли как-то только силами sql Postgres вытащить только те строки из таблицы, которые были изменены допустим за последний час?


Ответы (1 шт):

Автор решения: Vitalizzare

Без штампа времени последнего изменения, только на основании текущего состояния, задача не решается. При наличии только срезов задача также не решается - невозможно отличить неизменённую запись от изменённой с последующим обратным изменением.

В таблице должна быть колонка со временем последнего обновления. Альтернатива - использование Temporal tables (Хронологическая база данных). Хотя PostgreSQL не имеет встроенной поддержки таблиц изменений данных во времени, как некоторые другие базы (например, SQL Server), эту функциональность можно реализовать с помощью комбинации триггеров и отдельных таблиц истории или с использованием расширений (см. пример).

→ Ссылка