Skip to main content

Що робить тригер рівня рядка?

Тригер рівня рядка (ROW-level trigger) - це тригер, який спрацьовує для кожного рядка, зачепленого операцією INSERT, UPDATE чи DELETE.

Тобто якщо запит змінив 5 рядків - тригер виконається 5 разів, по одному на кожен.

Усередині такого тригера доступні спеціальні псевдозаписи:

  • NEW - нові дані (після зміни чи вставки),
  • OLD - старі дані (до зміни чи видалення).

Приклад

sql
CREATE TRIGGER check_age BEFORE INSERT ON users FOR EACH ROW BEGIN IF NEW.age < 18 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Age must be 18+'; END IF; END;

Тут тригер перевіряє кожен рядок, що вставляється, і не дає додати користувача молодшого 18 років.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.