Разница между каскадом и ограничением? База данных SQL DDL

Может ли кто-нибудь сказать мне, что именно каскадно, и ограничить среднее? Он в системах баз данных подвергает DDL Part

и что, если я не пишу ни одного из них в моей инструкции delete?

Ответ 1

ON DELETE CASCADE и ON DELETE RESTRICT являются свойством внешнего ключа, и вы устанавливаете их при создании связи между двумя таблицами.

Если для отношения установлено значение ON DELETE CASCADE, то при выполнении оператора DELETE для родительской таблицы он автоматически удалит все соответствующие строки из таблицы CHILD. Но RESTRICT (который является поведением отношений внешнего ключа по умолчанию) - это когда вы пытаетесь удалить строку из родительской таблицы, и в дочерней таблице есть строка с тем же идентификатором, он не будет жаловаться на существующие дочерние строки.

В любом случае вам не нужно ничего упоминать в предложении DELETE.

Я также написал сообщение в блоге о различных правилах для команд удаления и обновления более подробно здесь:

https://koukia.ca/sql-server-foreign-key-update-and-delete-rules-556cf09117fe

Ответ 2

Существует три типа удаления, связанные с внешним ключом

  • On Delete Cascade: когда данные удаляются из родительской таблицы, автоматически удаляются данные из дочерней таблицы (таблица внешнего ключа).
  • В поле "Удалить" Null: когда данные удаляются из родительской таблицы, связанная с внешним ключом ячейка будет иметь значение null в дочерней таблице.
  • On Delete Restrict: когда данные удаляются из родительской таблицы и есть внешний ключ, связанный с дочерней таблицей, он дает ошибку, вы не можете удалить запись.

Ответ 3

Правильно, чтобы эти ON DELETE и ON UPDATE применялись к родительской таблице/строке. Причина NO ACTION и RESTRICT - это то же самое, потому что вы не можете иметь отношения с дочерним и родительским, если родительский объект не существует.