gpt4 book ai didi

sql - 同一个表之间多对多的级联删除

转载 作者:行者123 更新时间:2023-12-02 16:50:03 27 4
gpt4 key购买 nike

我正在尝试在 SQL Server 中的同一个表之间创建多对多关系。

我有一个表 Object,其中包含 ObjectIdName 列。

关系遵循以下规则:

  • 一个 child 可以有多个 parent
  • 一个 parent 可以有多个 child
  • ObjectA 可以是 ObjectB 的子级,ObjectB 也可以是 ObjectA 的子级
  • 但对象不能是其自身的直接子对象

因此,我创建了第二个表 ObjectRelation,其中包含 ParentIdChildId 列,当然我希望通过级联删除这些关系。

但是当我在 SQL Server 中尝试此操作时,我收到错误

Introducing FOREIGN KEY constraint 'FK_ObjectRelation_Object1' on table 'tblADMembership' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

在 SQL Server Compact 中我得到

The referential relationship will result in a cyclical reference that is not allowed.

我做了一些研究,我明白为什么会出现这些错误,但是有没有一种方法可以解决这个问题并且也适用于 SQL Server Compact(因此没有存储过程)?或者有更好的方法来模拟这种关系吗?

最佳答案

我自己也遇到了类似的问题......我最终删除了外键。循环删除逻辑已推送到代码中。

关于sql - 同一个表之间多对多的级联删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193935/

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