gpt4 book ai didi

mysql - ON CASCADE DELETE 实现

转载 作者:行者123 更新时间:2023-11-29 21:58:05 25 4
gpt4 key购买 nike

我对 ON CASCADE DELETE 是如何实现的很感兴趣,因为我想对这个操作的性能有一些想象。
假设我有 3 个表:父表、子表(引用父表的 FK 为 ON DELETE CASCADE)、孙子表(引用子表的 FK 为 ON DELETE CASCADE)。
现在我想删除父表中的一行以及子表和孙表中的所有相应条目。
我想知道哪些查询是由 ON DELETE CASCADE “构造”来执行此操作的。
是像下面这样的吗?

SELECT child.id FROM child WHERE child.parent_id = 'parent_id';然后,对于 SELECT 查询返回的每个结果,执行以下查询:DELETE FROM grandchild WHERE grandchild.child_id = 'child_id' ?然后子表中id=child_id的行就可以被删除。重复此操作,直到 SELECT 返回所有子级。查询被删除。最后可以删除父级。
我想它也可以使用表上的一些连接来实现,但这样外键约束可能会失败。

最佳答案

是的,你的例子是一样的。有关您的查询的更多信息。你可以做这样的事情解释从 table1 中删除,其中 id = 1;显示发生了什么。

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

关于mysql - ON CASCADE DELETE 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com