繁体   English   中英

将两个外键链接到一个主键

[英]Linking Two Foreign Keys to one Primary Key

我有两个表,一个摄影师表和一个影响表。 在“影响”表中,一个摄影师可以影响其他摄影师。

关系架构:

这是我在SQL中的图表:

实例示例:

我的问题是,当我尝试删除摄影师Tom时,由于他影响了Jason(如Impacts表中所示),因此出现错误:

DELETE语句与REFERENCE约束“ FK_Influences_Photographer1”冲突。 数据库“ jma59”的表“ dbo.Influences”中发生了冲突

如果Tom在Impacts表的EPName列中,则删除它没有问题。 我知道这是一个外键问题,但是我不确定如何处理这种情况。 我创建了两个单独的外键,这些外键引用了摄影师的主键。 但是问题是我无法做到这两个外键都在更新和删除时级联。

第一个外键是EPName和EPBDate,引用摄影师的PName和PBDate

第二个外键是RPName和RPBDate,也指摄影师的PName和PBDate。

错误是:

无法创建关系“ FK_Influences_Photographer1”。 在表“ Influences”上引入FOREIGN KEY约束“ FK_Influences_Photographer1”可能会导致循环或多个级联路径。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

任何意见是极大的赞赏!

您可以考虑使用触发器而不是级联删除来实现参照完整性: https : //support.microsoft.com/en-gb/help/321843/error-message-1785-occurs-when-you-create-a-外键约束-THA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM