![]() |
![]() |
Категории: АстрономияБиология География Другие языки Интернет Информатика История Культура Литература Логика Математика Медицина Механика Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Транспорт Физика Философия Финансы Химия Экология Экономика Электроника |
Удалить существующий триггер позволяет операторУдаление хранимых процедур Для удаления процедур используется оператор 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; |