我在User和Post之间有 1..* 关系。(一个用户有很多帖子)
Post有一个名为“UserId”的 FK,它映射到User表上的“UserId”字段。
我试图将此 FK 设置为 Cascade UPDATE/DELETE,但出现此错误:
“用户”表已成功保存“帖子”表 - 无法创建关系“FK_Posts_Users”。
在表 'Posts' 上引入 FOREIGN KEY 约束 'FK_Posts_Users' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束。请参阅以前的错误。
我有一张名为PostHelpful 的表。一篇文章有很多有用的。
Helpful 对 User 有一个级联的 FK(所以当一个 User 被删除时,他们的 Helpful 也会被删除)。
但我认为这是抱怨“多级联路径”的原因。
因为如果我删除用户(当前),它将删除他们的帮助。但是我也试图向 Post 添加一个级联,这样做会删除 Post,然后尝试删除该 Post 的 Helpful(因为 Helpful 也有一个级联的 FK 到 Post)。在那种情况下,SQL 会选择哪个级联 FK?
这是有问题的三个表的数据库图:
如您所见,“PostHelpful”是“Post”和“User”的子项(两者都有 FK)。
所以我不能让两个键级联?我是否需要在“用户”上触发(删除后)来手动删除帮助(以及引用用户的其他表)。