【发布时间】:2021-05-03 15:06:30
【问题描述】:
我有一个项目表:
| ID | NAME |
|---|---|
| 1 | GrandParent |
| 2 | Parent1 |
| 3 | Parent2 |
| 4 | Child1 |
还有一个 ItemRelations 表:
| ParentItemId | ChildItemId |
|---|---|
| 1 | 2 |
| 1 | 3 |
| 2 | 4 |
我正在尝试在 itemTable 的 ParentItemId 和 ChildItemId 上使用删除级联的外键, 当我删除 GrandParent 时,我想保持 Parent1 和 Child1 之间的关系 但 SQL 不允许我这样做:
'- 无法创建关系“FK_BlockRelations_Child”。 在表上引入 FOREIGN KEY 约束“FK_BlockRelations_Child” “BlockRelations”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN 关键约束。无法创建约束或索引。见上 错误。'
【问题讨论】:
-
您使用的是哪个 dbms?
-
我正在使用 SQL Server
-
您是否尝试将 parentItemId 和 childItemId 都指向父表中的 ID 列。你有没有在此处发布的名称为 BlockRelations 的任何其他表。问题似乎与该表有关
标签: sql sql-server database cascading-deletes