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

use*_*872 23 sql database ddl

有谁能告诉我究竟是什么级联,并限制意味着什么?它位于DDL Part的数据库系统中

如果我不在我的删除声明中写任何一个怎么办?

Ara*_*ram 53

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

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

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

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

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

  • 当它设置为RESTRICT时,没有任何行(父或子)将被删除,你将看到和错误.如果您希望删除父行而不管子行是否存在,那么您应该使用NO ACTION. (2认同)
  • 所以,**Cascade**意味着当我删除父母时,孩子也会被删除.**当我尝试删除时,限制**给我一个错误.**当我删除父母时,没有动作**不会改变孩子的任何事情.**设置默认值**在删除父项时将子项设置为默认值.**设置null**在删除父项时将子项设置为null.我对吗?非常感谢你 (2认同)
  • 好吧,我只是抬起头来,看起来“不采取行动”和“限制”是同一回事,而对于其他事情,您做对了。 (2认同)

Adi*_*mar 19

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

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