gpt4 book ai didi

sql - ON DELETE SET NULL 自引用关系

转载 作者:行者123 更新时间:2023-12-03 00:44:21 24 4
gpt4 key购买 nike

我的表包含一个主键和一个引用同一表主键外键。 即有 parent 和 child 在同一张 table 上。在sql sever中,删除规则有三个选项。但只能设置“NO ACTION”删除规则。据我了解,由于循环和链接,不可能设置“级联”删除。但为什么其他选项不允许呢?尤其是“SET NULL”这一点。

现在我必须手动执行此操作。我必须找到子记录并将外键设置为空。之后我可以删除父级。为什么不能为其设置规则?

最佳答案

因为它不能在同一个表上同时执行两个操作,即:

-删除父级。

-更新子项。

A mutating table is a table that is being modified by an UPDATE, DELETE, or INSERT statement, or a table that might be updated by the effects of a DELETE CASCADE constraint.

您可以通过创建一个保留父键来删除记录并将子项设置为 NULL 的过程来克服手动执行此操作的问题。

procedure(parent_id) --takes the id as a parameter

update table set null where foreign_key = parent_id;

delete from table where id = parent_id;

end;

关于sql - ON DELETE SET NULL 自引用关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29297043/

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