Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике 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 до выполнения запроса. Триггеры имеют множество применений. Основные из них: проверка допустимости вводимых данных, присваивание значений по умолчанию, обновление представлений и обеспечение ссылочной целостности.
|
1 |
Оглавление
|