При создании триггера в Oracle есть возможность использовать новые и старые значения, если триггер для FOR EACH ROW.
Мне нужно это для всей таблицы, потому что я не использую FOR EACH ROW.
У меня есть две таблицы: Table1: User_Hist (ID, EID, NAME, VALID_FROM) Table2: Пользователь (ID, NAME, VALID_FROM)
В Table2 есть ограничение внешнего ключа USER (ID, VALID_FROM)) ССЫЛКИ USER_HIST (EID, VALID_FROM)
В таблице User_Hist хранится вся информация о пользователе с течением времени.В пользовательской таблице должен храниться только самый новый пользователь.
Если удалить самую новую строку, ограничение остановит это.
Так что моя идея состоит в том, чтобы обновить пользователя таблицы в TRIGGER.
В триггере BEFORE DELETE для User_Hist будет инструкция MERGE, которая обновляет пользователя таблицы.Но мне нужно, какие строки удаляются, лучше всего будет: НОВАЯ таблица.
Может ли кто-нибудь последовать моему объяснению ...
Может быть, это поможет
User_hist:
ID ... EID ..... NAME ................. VALID_FROM
1 ..... 1 ....... Сара Саммер ..... 2010-01-01
2 ..... 1 ....... Сара Миллер .......... 2013-01-01
ПОЛЬЗОВАТЕЛЬ до удаления ID2:
ID ..... ИМЯ .............. VALID_FROM
1 ...... Сара Миллер ..... 2013-01-01
ПОЛЬЗОВАТЕЛЬ после удаления ID2:
ID ..... ИМЯ .................. VALID_FROM
1 ...... Sarah Summer ..... 2010-01-01
Но учтите, что можно удалить несколько строк одного или нескольких пользователей.