MySQL – каскадное удаление строк из таблиц

В данном посте я хочу проверить механизм каскадного удаления связанных таблиц. Создам новую базу данных, 2 связанных таблицы – отделы (departments) и сотрудники (employee). Сделаю стартовое заполнение. И попробую удалить один из отделов… Все работы буду делать из консоли MySQL.exe для тренировки…

Создание БД из консоли…

1

Итак, БД DB_Company успешно создана на сервере mysql;

Создание таблиц в БД из консоли…

Таблица департаментов…


Также создаём таблицу сотрудников…

2

Как видно из рисунка – таблицы успешно созданы…

Связывание таблиц

Теперь свяжем таблицы через создание ограничения и внешнего ключа для таблицы employee… Но, для начала, нам нужно создать колонку для внешнего ключа…

3

Мы создали просто внешний ключ, а нам нужно создать внешний ключ с параметром каскадного удаления, поэтому удалим внешний ключ и создадим его снова с нужными параметрами…

5

Создаём внешний ключ с условием каскадного удаления…

6

Итак, проверим всё ли правильно, вызвав show create table…

7

Итак, ON DELETE CASCADE, установлен!

Заполнение таблиц

Теперь заполним таблицы некоторыми значениями. Пусть у нас будет 3 отдела – логистика, продажи, разработка…

8

И 6 сотрудников, по 2 на каждый отдел…

9

Теперь, если мы удалим, например 3 отдел Development из таблицы Department, то должны удалиться сотрудники Semen и Mihail…

10

Итак, механизм каскадного удаления в MySQL – прекрасно работает!


[block id=”mysql-first-steps”]

This entry was posted in MySQL, SQL инструкции. Bookmark the permalink.