В параметрах внешнего ключа при обновлении и при удалении. Что делает каждое поле [Ограничить, Каскад, Установить нуль, Нет действий]?
Параметры внешнего ключа рабочей среды Mysql [Restrict, Cascade, Set Null, No Action], что они делают?
Ответ 1
Если вы берете один за другим:
Для обновления и удаления:
если вы попытаетесь обновить/удалить родительскую строку:
Ограничить: ничего не будет удалено, если есть дочерняя строка
Каскад: дочерняя строка также будет удалена/обновлена
Установить Null: дочерний столбец будет иметь значение null, если вы удалите родительский
Нет действий: дочерняя строка не будет касаться удаления/обновления
Ответ 2
Таблица, содержащая внешний ключ, называется ссылкой или дочерней таблицей, а таблица, содержащая ключ-кандидат, называется ссылкой или родительская таблица.
Установить NULL. Устанавливает значение столбца NULL при удалении родительской таблицы.
CASCADE. CASCADE будет распространять изменение, когда родительский элемент изменится. Если вы удалите строку, строки в файлах с ограничениями, которые ссылаются на эту строку , также будут удалены и т.д.
RESTRICT: RESTRICT не позволяет удалить заданную родительскую строку, если существует дочерняя строка, которая ссылается на значение для этой родительской строки.
НЕТ ДЕЙСТВИЯ: НЕТ ДЕЙСТВИЙ и RESTRICT очень похожи. когда в ссылочной таблице выполняется инструкция UPDATE или DELETE, СУБД в конце выполнения оператора проверяет, что не связаны никакие ссылки . в короткой дочерней строке не беспокоится, если родительская строка удалить или обновить.