首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于级联删除实现

问关于级联删除实现
EN

Stack Overflow用户
提问于 2015-10-03 15:46:47
回答 1查看 205关注 0票数 0

我感兴趣的是,ON级联删除是如何实现的,因为我想对此操作的性能有一些想象力。

假设我有3个表:父表、子表(FK引用父表在DELETE级联上)、孙子表(FK引用子表位于DELETE级联)。

现在,我要删除父表中的一行,以及子表和外孙表中的所有相应条目。

我想知道哪些查询是由DELETE级联“构造”来执行此操作的。

是像下面这样的吗?

然后,对于从SELECT查询返回的每个结果,执行以下查询:SELECT child.id FROM child WHERE child.parent_id = 'parent_id';?然后,可以删除带有id = child_id的子表中的行。重复此操作,直到删除SELECT查询返回的所有子级。最后,家长可以被删除。

我猜它也可以使用表上的一些联接来实现,但是外键约束可能会失败。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-03 16:06:14

是的,你的例子也是一样的。有关查询的更多信息。您可以做一些类似EXPLAIN DELETE FROM table1 where id = 1;的事情来显示发生了什么。

正如您在explain命令中看到的那样,我在删除子记录时也调用索引。

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

https://stackoverflow.com/questions/32924453

复制
相关文章

相似问题

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