Внешний ключ сохраняет ссылочную целостность: зависимая запись не должна ссылаться на несуществующего родителя. Правило удаления определяет судьбу таких зависимостей.
Для чего нужен констрейнт по внешнему ключу и в чём смысл ограничения на удаление/обновление при наличии зависимых записей (логически)?
Внешний ключ сохраняет ссылочную целостность: зависимая запись не должна ссылаться на несуществующего родителя. Правило удаления определяет судьбу таких зависимостей.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Внешний ключ сохраняет ссылочную целостность: зависимая запись не должна ссылаться на несуществующего родителя. Правило удаления определяет судьбу таких зависимостей.
RESTRICT или NO ACTION не позволяют оставить нарушенную ссылку; CASCADE удаляет либо обновляет зависимые строки; SET NULL применим, если пустая ссылка допустима.
Выбор отражает смысл предметной области. Например, автоматическое удаление истории заказов вместе с клиентом может быть нежелательным. Точная семантика и момент проверки зависят от СУБД и настройки ограничения.