相关疑难解决方法(0)

外键约束可能导致循环或多个级联路径?

当我尝试向表格添加约束时,我遇到了问题.我收到错误:

在表'Employee'上引入FOREIGN KEY约束'FK74988DB24B3C886'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.

我的约束是在Code表和employee表之间.该Code表包括Id,Name,FriendlyName,TypeValue.在employee具有许多参考代码,使得可以存在对于每种类型的码的参考字段.

如果删除引用的代码,我需要将字段设置为null.

我有什么想法可以做到这一点?

sql sql-server constraints

171
推荐指数
4
解决办法
12万
查看次数

级联删除导致多个级联路径

我正在使用SQlServer 2008,下面显示了一些数据表的摘录:

用户

Id(PK)

UserItems

UserId(PK)ItemId(PK) - (2列的复合键)...

UserItemVotes

UserId(PK)ItemId(PK)VoterId(PK) - (3列的复合键)

我定义了以下关系:

  • User.Id - > UserItems.UserId
  • (UserItems.UserId,UserItems.ItemId) - >(UserItemVotes.UserId,UserItemVotes.ItemId)
  • UserId.Id - > UserItemVotes.VoterId

现在,我在打开级联删除时遇到问题.添加第三个关系时,我收到错误"...可能导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束." 我真的不想这样做,理想情况下,如果用户被删除,我想删除他们的用户项和/或他们的投票.

这是一个糟糕的设计吗?或者有没有办法从SQL Server获得我想要的行为?

sql-server database-design

4
推荐指数
1
解决办法
799
查看次数

标签 统计

sql-server ×2

constraints ×1

database-design ×1

sql ×1