Удалить существующий триггер позволяет оператор

Удаление хранимых процедур

Для удаления процедур используется оператор

DROP PROCEDURE [IF EXISTS] имя_процедуры ;

Если удаляемой процедуры с таким именем не существует, оператор возвращает ошибку, которую можно подавить, если использовать необязательное ключевое слово if exists.

Триггеры

Триггер – это хранимая процедура, привязанная к событию изменения со­держимого конкретной таблицы.

Возможны три события, связанных с изменением содержимого таблицы, к которым можно привязать триггер:

· insert – вставка новых данных в таблицу;

· delete – удаление данных из таблицы;

· Update – обновление данных в таблице.

Создание триггеров

Создать новый триггер позволяет оператор:

CREATE TRIGGER trigger_name trigger_time trigger_event

ON tbl_name FOR EACH ROW trigger_stmt ;

Оператор создает триггер с именем trigger_name, привязанный к таблице tbl_name. Не допускается привязка триггера к временной таблице или представлению. Конструкция trigger_time указывает момент выполнения триггера и может прини­мать два значения:

· before – действия триггера производятся до выполнения операции изменения таблицы;

· after – действия триггера производятся после выполнения операции изменения таблицы.

Конструкция trigger_event показывает, на какое событие должен реагировать триггер, и может принимать три значения:

· insert – триггер привязан к событию вставки новой записи в таблицу;

· update – триггер привязан к событию обновления записи таблицы;

· delete – триггер привязан к событию удаления записей таблицы.

Для таблицы tbl_name может быть создан только один триггер для каждого из со­бытий trigger_event и момента trigger_time. Таким образом, для каждой из таблиц мо­жет быть создано всего шесть триггеров.

Конструкция trigger_stmt представляет тело триггера – оператор, который необ­ходимо выполнить при возникновении события trigger_event в таблице tbl_name.

Если требуется выполнить несколько операторов, то необходимо использовать составной оператор begin ... end. Синтаксис и допустимые операторы такие же, как и у хранимых процедур. Внутри составного оператора begin ... end допускаются все специфичные для хранимых процедур операторы и конструкции:

· другие составные операторы begin ... end;

· операторы управления потоком (if, case, while, loop, repeat, leave, iterate);

Триггеры сложно использовать, не имея доступа к новым записям, которые вставляются в таблицу, или старым записям, которые обновляются или удаляются. Для доступа к новым и старым записям используются префиксы new и old соответст­венно. Если в таблице обновляется поле total, то получить доступ к старому значению можно по имени old.total, а к новому – new.total.

Удалить существующий триггер позволяет оператор

DROP TRIGGER trigger_name;

Удалить существующий триггер позволяет оператор - student2.ru

Удалить существующий триггер позволяет оператор - student2.ru

Наши рекомендации