Postgres захвата истории с усечением - PullRequest
0 голосов
/ 13 мая 2018

Запуск Postgres 9.6 на AWS Aurora

У меня есть таблица, где я записываю историю. Я использую триггеры для изменения ОБНОВЛЕНИЙ и УДАЛЕНИЙ на ВСТАВКИ и добавляю столбец операций с датой для регистрации изменений.

Проблема в некотором коде ETL, который я не контролирую TRUNCATES и повторно заполняет таблицу. Что я хочу, так это механизм переопределения TRUNCATE и «мягкого» усечения любых активных строк. Postgres поддерживает только триггеры INSTEAD OF для представлений, и вы не можете иметь триггер TRUNCATE для представлений. Так что нет - нет триггера INSTEAD OF TRUNCATE.

Что я сделал: Триггер BEFORE TRUNCATE для перемещения всех данных в таблице в новую таблицу Позвольте усеченному усеченному запуску Триггер AFTER TRUNCATE для перемещения всех данных назад и вставки новых строк мягкого усечения.

Я бы предпочел решение, при котором мне не нужно перемещать столько данных.

Я не владею кодом ETL, и чтобы заставить разработчиков ETL изменить свой код, потребовалось бы поддержать новый проект, протестировать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...