Получить метку времени при изменении значения столбца базы данных - PullRequest
1 голос
/ 14 января 2020

Всегда хорошее изучение и обмен знаниями.

У меня есть база данных, в которой среди других столбцов есть столбец, в котором указывается состояние транзакции. Это позволяет значения как created, picked, executed.

ID Status 1 created 2 picked 3 executed

На стороне пользователя они просто щелкают правой кнопкой мыши транзакцию и могут щелкнуть picked или executed (поскольку created - это то, что назначается при создании записи). Можно ли захватить таймфрейм , когда статус транзакции меняется, например, с picked на executed, и отобразить его как часть окончательного вида? Как бы я это сделал?

1 Ответ

0 голосов
/ 15 января 2020

Прежде всего, пожалуйста, решите:

  • Имеются ли какие-либо прямые операции записи для доступа к вашей таблице вне хранимых процедур?
  • Хотите ли вы сохранить фактическую таблицу и таблицу аудита? полная синхронизация?

Если вы планируете выполнять действия по записи только из хранимой процедуры - просто создайте новую таблицу и запишите операции аудита сразу после каждого действия. Это наиболее явный вариант, потому что здесь нет никаких скрытых вызовов. И обе таблицы могут быть полностью синхронизированы (если вы заключите свой оператор в транзакцию)

Если вы хотите заполнить основную таблицу и таблицу аудита в одной транзакции, однако insert / update / delete / merge вызываются из Java / . Net и др. c., Затем вы должны добавить триггер. Пожалуйста, проверьте здесь, как это можно сделать .

Если вы можете жить с задержкой между главной таблицей и таблицей аудита, отметьте опцию FLASHBACK ARCHIVE . Он работает с Oracle Журнал транзакций и заполняет таблицу аудита с небольшой задержкой. Однако это работает на отдельной работе, что означает, что операции вставки / обновления / удаления / слияния не замедляются из-за таблицы аудита (обратите внимание, что Oracle всегда имеет журнал транзакций, например, вы просто добавляете еще одну работу в обработать это). Так что это самый быстрый вариант.

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