Триггеры, их назначение, создание и использование. Триггер БД. Структура триггера БД. Именованный блок, который связан с соответствующей таблицей или представлением

Страницы работы

Содержание работы

1.4.22. Триггеры, их назначение, создание и использование.

Триггер БД – это хранимый именованный блок, который связан с соответствующей таблицей или представлением. Триггеры БД хранятся только на сервере, выполняются автоматически, сели срабатывают события на команды Insert, Update, Delete.

В триггерах БД можно:

1)  Реализовывать сложные виды ограничений целостности, если их нельзя наложить на уровне таблицы.

2)  Используются когда необходимо автоматически оповестить другие процедуры о том, что произошли или могут произойти изменения информации в БД.

3)  Используются когда необходимо выполнять слежение за данными в таблице.

Структура триггера БД.

1. Триггер можно создавать в PL/SQL (в Procedure Builder, в пункте меню->программы->редактор триггеров БД; в открытом окне указать владельца или схему таблиц, имя таблицы, задать имя триггера, указать когда должен сработать триггер, на какой оператор и на какие конкретно столбцы таблицы он должен сработать, пишется само тело триггера).

2. Триггер можно создавать в SQL Plus. Синтаксис:

Create or replace trigger имя_триггера

{before | after | instead of}

{delete | insert | update [of столбец1, столбец2, …]}

On имя_таблицы | представления

[referencing {old as имя_старой_строки

newas имя_новой_строки}]

[for each {row | statement}]

[where условие]

Begin

Тело триггера;

End;

/

*Instead of – указывается только в том случае, если триггер создается на представление.

В триггере можно использовать логические функции Deleting, Updating, Inserting. Эти функции используются в теле триггера в операторах условия и дают значение «истина», если триггер был запущен с соответствующей операцией. Триггер можно запускать, запуск осуществляется по команде @имя_триггера. Корректировать текст триггера можно вручную в файле, либо введя в SQL Plus: Edit имя_триггера. После корректировки надо снова запустить триггер (он перекомпилируется). Триггер можно включать или выключать:

SQL> Alter trigger имя_триггераdisable | enable;

Триггер можно удалять:

SQL> Drop trigger имя_триггера;

В триггере можно использовать команду для вывода сообщений на экран:

Dbms_output.put_line (‘текст’);

SQL> Set serveroutput on; - такую команду нужно 1 раз прописать в SQL Plus, чтобы работала команда вывода на экран.

Пример: триггер проверяет значение номеров телефонов при каждой вставке или обновлении.

Create or Replace trigger trigger_insert_update

before insert or update

on client

referencing old as old_row

new as new_row

for each row

begin

if (new_row.phone > 4999999999)

then dbms_output.put_line(‘клиент не Московского региона’);

end if;

end;

/

Похожие материалы

Информация о работе