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

266
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?

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

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

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

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

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

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

290