Я не знаю о такой функции.
И я был бы удивлен, если бы он существовал из коробки. Что если вместо UPDATE
сделать DELETE
и INSERT
? Ваша целевая база данных не сможет обработать такое изменение, потому что она не удалит строку с некоторым уникальным идентификатором (значением столбца) XXX
, а затем попытается вставить новый с этим идентификатором, в результате чего unique key violation
.
EDIT-1: Если вам нужна рабочая база данных only-recent
и база данных whole
для аудита, то, возможно, вам следует попробовать другое решение:
- Логическое удаление и просмотр : вы изменяете логику
DELETE
(либо путем изменения команды DELETE, либо с помощью триггера INSERT OF), чтобы пометить только строки как удаленные. Затем вы создаете представление, которое в основном оборачивает вашу таблицу, но фильтрует только те, которые не удалены. Вместо этого запустите все ваши запросы SELECT / INSERT / UPDATE для этого представления. В конце также в вашем текущем решении вы помечаете «удаленные» записи как удаленные как-то, верно?
- Аудит таблиц : сохраняйте свою историю также в основной базе данных, но в таблицах AUDIT (теневые). Опять же, вы можете сделать это с помощью триггеров AFTER практически без вмешательства.