Створення тригерів в mysql

Створення тригерів в MySQL

Тригери - це збережені процедури, які виконуються при настанні певної події. Під подією розуміється відправка певного запиту. Наприклад, при додаванні запису в таблицю тригер може бути викликаний і буде виконаний певний код.

Щоб перевірити, як працюють тригери, давайте створимо з Вами 2 таблиці. Перша таблиця - це країни (countries):

Відео: MySQL Chapter 15 - Trigger Examples

  • id - унікальний ідентифікатор.
  • title - назва країни.

Таблиця з містами (cities):

Відео: SQL 2012 Update Triggers Lab 2.3

  • id - унікальний ідентифікатор.
  • title - назва міста.
  • country_id - id тієї країни, якій належить дане місто.



Тепер давайте зробимо так, що якщо раптом видаляється запис з таблиці з країнами, то все міста, що належать цій країні, видаляються з таблиці з містами.




такий тригер створюється в MySQL наступним чином:

DELIMITER //
CREATE TRIGGER
`delete_cities` BEFORE DELETE ON `countries`
FOR EACH ROW
BEGIN
DELETE FROM
`cities` WHERE `country_id`=OLD.`id`-
END

Після створення тригера при видаленні країни автоматично відійдуть з іншої таблиці все міста, що належать цій країні. Тепер розберемо докладніше синтаксис створення тригера:

  • DELIMITER - роздільник, який необхідно вказати, інакше на "-"Буде видаватися помилка.
  • `delete_cities` - це просто ім`я тригера.
  • BEFORE DELETE - дана команда означає, що тригер буде спрацьовувати безпосередньо перед видаленням запису. замість BEFORE може бути AFTER, а замість DELETE інша подія, наприклад, INSERT або UPDATE.
  • `countries` - назва таблиці, на яку встановлюється тригер.
  • FOR EACH ROW - початок команди, що виконується при спрацьовуванні тригера.
  • BEGIN і END - окремий блок виконуваної команди.
  • OLD.`id` - звернення до полю `id` видаляється записи з таблиці `countries`.

Відразу скажу, що тут я показав простий приклад. У реальності, код після FOR EACH ROW може бути не 2 рядки, а дуже і дуже великим. Там так само можна писати цикли, умови, різні порівняння і багато-багато іншого.

Ось таким чином створюються тригери в MySQL.

Поділися в соціальних мережах:

Схожі
Як зробити тестування на сайтіЯк зробити тестування на сайті
Структура бази данихСтруктура бази даних
Створення движка на mvc. Робимо можливість редагування і видалення користувачів.Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
Права (привілеї) користувачів в mysqlПрава (привілеї) користувачів в mysql
Як зробити коментування на сайтіЯк зробити коментування на сайті
Індекси в mysqlІндекси в mysql
MysqlMysql
Group by в sqlGroup by в sql
Dead trigger 2Dead trigger 2
Sql-запити для роботи з таблицямиSql-запити для роботи з таблицями
» » Створення тригерів в mysql