首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >级联和限制之间的区别?SQL DDL数据库

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

Stack Overflow用户
提问于 2013-12-17 03:27:08
回答 3查看 102.3K关注 0票数 40

谁能告诉我CASCADE和RESTRICT到底是什么意思?它位于受制于DDL部分的数据库系统中

如果我没有在我的ON DELETE语句中写出它们中的任何一个呢?

EN

回答 3

Stack Overflow用户

发布于 2013-12-17 03:40:31

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

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

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

我还写了一篇博文,详细介绍了DELETE和UPDATE命令的不同规则:

SQL Server Foreign Key Update and Delete Rules | Koukia

票数 78
EN

Stack Overflow用户

发布于 2017-03-14 06:44:29

与外键关联的on delete有三种类型

  1. On delete Cascade:从父表中删除数据时,自动从子表(外键表)中删除数据。
  2. On Delete set Null:从父表中删除数据时,子表中与外键关联的单元格将为null。
  3. On Delete Restrict:当从父表中删除数据时,如果存在与子表关联的外键,则不能删除该记录。
票数 30
EN

Stack Overflow用户

发布于 2014-03-25 08:30:25

对,所以这些在DELETE和ON UPDATE中应用于父表/行。无操作和限制是一回事的原因是,如果父对象不存在,则不能与子对象和父对象建立关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20619211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档