MySQL. Ссылочная целостность. Не работает ON DELETE RESTRICT

295
12 марта 2017, 05:39

Доброго времени суток. Есть таблицы departments и users. Записи из таблицы юзеров могут иметь ссылку на записи из departments, но не обязательно, в определении столбца стоит, что он может быть NULL.

Понадобилось установить на них ссылочную целостность, то есть при удалении записи из departments, если кто-то в users имеет ссылку на нее, то должна вылетать ошибка. Использую такой запрос для установки внешнего ключа:

ALTER TABLE `users`
ADD CONSTRAINT `users_ibfk_2` 
FOREIGN KEY (`department_id`) 
REFERENCES `departments` (`id`) ON DELETE RESTRICT;

И вся запара в том, что это не работает для столбцов, которые могу быть NULL. При удалении записи из departments, в таблице users, значение столбца department_id тупо устанавливается в NULL. Если запретить NULL, то естественно всё работает и ошибка вылетать будет. Но мне нужно что бы столбец мог быть NULL. Подскажите что делать. Движок, если что MyISAM, просто читал, что это работает только на нём.

READ ALSO
Отношение “Метаклассы” между классами(Java)

Отношение “Метаклассы” между классами(Java)

Метаклассы - это тип отношения между классамиКак его можно охарактеризовать и реализовать в языке Java?

275
Android Nougat.Проблема с SSL-соединением

Android Nougat.Проблема с SSL-соединением

Возникла проблема с SSL-соединением на последних версиях Android (API>23)На предыдущих версиях проблема не наблюдается

268
Нужна помощь с TabLayout

Нужна помощь с TabLayout

Сделал TabLayout в стиле Material Design:

316