Подтвердить что ты не робот

Параметры внешнего ключа рабочей среды Mysql [Restrict, Cascade, Set Null, No Action], что они делают?

В параметрах внешнего ключа при обновлении и при удалении. Что делает каждое поле [Ограничить, Каскад, Установить нуль, Нет действий]?

4b9b3361

Ответ 1

Если вы берете один за другим:

Для обновления и удаления:

если вы попытаетесь обновить/удалить родительскую строку:

Ограничить: ничего не будет удалено, если есть дочерняя строка

Каскад: дочерняя строка также будет удалена/обновлена ​​

Установить Null: дочерний столбец будет иметь значение null, если вы удалите родительский

Нет действий: дочерняя строка не будет касаться удаления/обновления

Ответ 2

Таблица, содержащая внешний ключ, называется ссылкой или дочерней таблицей, а таблица, содержащая ключ-кандидат, называется ссылкой или родительская таблица.

Установить NULL. Устанавливает значение столбца NULL при удалении родительской таблицы.

CASCADE. CASCADE будет распространять изменение, когда родительский элемент изменится. Если вы удалите строку, строки в файлах с ограничениями, которые ссылаются на эту строку , также будут удалены и т.д.

RESTRICT: RESTRICT не позволяет удалить заданную родительскую строку, если существует дочерняя строка, которая ссылается на значение для этой родительской строки.

НЕТ ДЕЙСТВИЯ: НЕТ ДЕЙСТВИЙ и RESTRICT очень похожи. когда в ссылочной таблице выполняется инструкция UPDATE или DELETE, СУБД в конце выполнения оператора проверяет, что не связаны никакие ссылки . в короткой дочерней строке не беспокоится, если родительская строка удалить или обновить.