Если вам НУЖНО отслеживать определенные состояния записей на основе данных, содержащихся в полях указанных записей в вашей базе данных, триггеры позволят вам переместить записи до того, как они ОБНОВЛЯЮТСЯ или УДАЛЕНЫ в соответствующую историю.Таблица или иным образом называется таблицей аудита.Идея состоит в том, что вы затем запросите свою таблицу аудита на основе даты / времени, когда вы подозреваете, что запись была обновлена, чтобы получить значение поля до того, как это поле будет обновлено.
Пример UPDATE /УДАЛИТЬ Триггер
TRIGGER user_schema.ACCOUNTS_HIST_TRIG
AFTER
DELETE OR UPDATE of account_bus_id, account_name, account_phone, other_field_you_care_about
ON user_schema.accounts
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
numUser number; /* Used to store user_id */
BEGIN
/* Perhaps you have code to pull in the user that performed the update */
numuser := user_schema.get_user_updated();
INSERT INTO user_schema.accounts_hist(
account_id,
account_type,
account_phone,
account_phone_type,
updated_by
)
VALUES(:OLD.account_id,
:OLD.account_type,
:OLD.account_phone,
:OLD.account_phone_type,
numuser);
exception
WHEN others THEN
RAISE;
END;