MySQL - внешний ключ при удалении устанавливает ноль в ненулевое поле
Это, наверное, тривиальный вопрос, но яЯ все еще немного неуклюж, когда дело доходит до ограничений внешнего ключа, поэтому я хотел убедиться.
Позволять'говорят, у меня есть столcountries
с полямиcountry_id
(ПК) иname
и столcities
с полямиcity_id
(ПК),name
а такжеcountry_id
(ФК).
Внешний ключcities.country_id
имеет ограничениеON DELETE SET NULL
, Насколько я понимаю, это означает, что если запись изcountries
удаляется, любые записи вcities
что ссылка на удаленную записьcountry_id
будет иметьcountry_id
поле установлено в NULL.
Что если, однако,cities.country_id
имеет атрибутNOT NULL
? Помешает ли это ограничению внешнего ключа? Это имело бы смысл, но я просто хочу проверить.