Главная > Построение баз данных в среде Oracle
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

4.3 Триггеры

Триггер (trigger) — это специальная программа, назначаемая таблице или представлению. Триггер вызывается СУБД, когда пользователь за­прашивает вставку, обновление или удаление строки из таблицы или пред­ставления, которому принадлежит данный триггер. Триггеры для Oracle можно писать на собственном языке программирования этой СУБД, но­сящим название PL/SQL (Programming Language for SQL - язык програм­мирования для SQL), или на Java.

Oracle поддерживает три вида триггеров: предваряющие (BEFORE), замещающие (INSTEAD OF) и завершающие (AFTER). Как и логично было бы ожидать, предваряющие триггеры вызываются перед обработ­кой запроса на вставку, обновление или удаление, замещающие - вместо него, а завершающие - после обработки запроса. Всего имеется девять воз­можных типов триггеров: предваряющий триггер вставки, обновления и удаления, замещающий триггер вставки, обновления и удаления и завер­шающий триггер вставки, обновления и удаления.

При запуске триггера СУБД предоставляет доступ к вставляемым, об­новляемым или удаляемым из тела триггера данным. В случае вставки триггеру доступны значения столбцов новой строки, в случае удаления — значения столбцов удаляемой строки, а в случае обновления триггер мо­жет оперировать как новыми, так и старыми значениями.

В Oracle для получения новых значений необходимо добавить к имени столбца префикс :new. Так, например, при вставке в таблицу CUSTOMER переменная :new.Name содержит значение столбца Name вставляемой строки. В случае обновления переменная :new.Name содержит значение, которое будет иметь столбец Name после выполнения запроса. Аналогич­ным образом, для получения старых значений необходимо добавить к име­ни интересующего нас столбца префикс :old. Например, при удалении пе­ременная :old.Name содержит значение столбца Name удаляемой строки. В случае обновления эта переменная содержит значение столбца Name до выполнения запроса.

Триггеры имеют множество применений. Основные из них: проверка допустимости вводимых данных, присваивание значений по умолчанию, обновление представлений и обеспечение ссылочной целостности.

 

Categories

1
Оглавление
email@scask.ru