Методическое пособие к лабораторным работам по курсу «База данных» Ташкент 2022


CREATE [DEFINER = { user | CURRENT_USER }]


Download 3.26 Mb.
bet71/91
Sana15.11.2023
Hajmi3.26 Mb.
#1777302
TuriМетодическое пособие
1   ...   67   68   69   70   71   72   73   74   ...   91
Bog'liq
Metodichka BD

CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body
Где,
trigger_name —название триггера;
trigger_time — время срабатывания триггера. 
BEFORE — перед событием. 
AFTER — после события;
trigger_event — событие:

  • insert — событие возбуждается операторами insert, data load, replace;

  • update — событие возбуждается оператором update;

  • delete — событие возбуждается операторами delete, replace.

tbl_name — название таблицы;
trigger_body — выражение, которое выполняется при активации триггера.

На столбцы таблицы, к которой привязан триггер можно ссылаться с помощью псевдонимов OLD и NEW


OLD.col_name указывает на столбец с именем col_name до изменения или удаления данных. NEW.col_name относится к колонке новой строке после вставки или существующей - сразу после её обновления.
После оператора и имени триггера необходимо указать в каком случае будет срабатывать триггер. Возможно 6 вариантов:

  • BEFORE INSERT

  • BEFORE UPDATE

  • BEFORE DELETE

  • AFTER INSERT

  • AFTER UPDATE

  • AFTER DELETE

Для удаления триггера необходимо выполнить запрос:


DROP TRIGGER trigger_name;
Для просмотра триггеров в базе данных используется оператор:
SHOW TRIGGERS;

Триггеры имеют несколько важных особенностей использования:



  1. триггеры в MySQL 5 могут создаваться только пользователем с привилегией SUPER;

  2. при использовании запроса, затрагивающего N - записей, триггер будет запускаться N - раз;

  3. после удаления таблицы, СУБД MySQL автоматически удаляет привязанные к ней триггеры.

Пример выполнения задания для предметной области «Запись на прием»:


Чтобы создать триггер AFTER INSERT создадим две таблицы: test и log. С помощью этих таблиц можно увидеть ведение записей изенений в таблицах или же лог файлов.

Рис. 14.2.1. Создание таблицы test и log.

Создадим триггер update_test предварительно указав delimiter, где будут зарисываться изменения в таблице test. Соответственно это будет сообщение insert и id новой записи.






Download 3.26 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling