Створення тригерів в 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.
- Dead trigger 2
- Оптимізація планувальника завдань windows 8
- Як дізнатися останній id в mysql
- Як вибрати неповторювані значення з бази даних.
- Як зробити коментування на сайті
- Як зробити тестування на сайті
- Як дізнатися синтаксис sql-запиту через phpmyadmin
- Індекси в mysql
- Багаторівневе меню на php і mysql
- Sql-запит на вибірку з декількох таблиць
- Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
- Sql-запити для роботи з таблицями
- Group by в sql
- Управління записами в phpmyadmin
- Різниця між sql і mysql
- Mysql
- Нормальні форми баз даних.
- Оператор between в sql.
- Права (привілеї) користувачів в mysql
- Структура бази даних
- Запит sql на додавання і видалення записів