级联和限制之间的区别? SQL DDL数据库

时间:2013-12-16 19:27:08

标签: sql database ddl

有谁能告诉我究竟是什么级联,限制意味着什么? 它位于数据库系统中,以DDL部件为主题

如果我在删除声明中没有写任何内容怎么办?

3 个答案:

答案 0 :(得分:46)

ON DELETE CASCADE和ON DELETE RESTRICT是外键属性,您可以在创建两个表之间的关系时设置它们。

如果将关系ship设置为ON DELETE CASCADE,则在父表上运行DELETE语句时,它将自动从CHILD表中删除所有相应的行。但是RESTRICT(这是默认的外键关系行为)是当您尝试从父表中删除行并且子表中有一行具有相同ID时,它将无法抱怨现有子行。< / p>

无论哪种方式,您都不需要在DELETE子句中提及任何内容。

我还在这里写了一篇关于删除和更新命令的不同规则的博客文章:

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

答案 1 :(得分:15)

与外键关联的删除有三种类型

  1. On Delete Cascade:从父表中删除数据时,自动从子表(外键表)中删除数据。
  2. On Delete set Null:当从父表中删除数据时,外键关联单元格在子表中将为null。
  3. 关于删除限制:当从父表中删除数据,并且存在与子表关联的外键时,它会给出错误,您无法删除该记录。

答案 2 :(得分:0)

正确,因此这些ON DELETE和ON UPDATE适用于父表/行。 NO ACTION和RESTRICT之所以相同,是因为如果父母不存在,你就不能与孩子和父母建立关系。