Sql 外键参考问题。但是为什么呢?
下面是我的er图。 我的要求是,客户可以有一套罩衫/pardi/lhenga或任何两件或任何一件产品 对于以上内容,下面是我的ER图。但问题是我无法从sql server创建数据。上面说 以下是所要求的关系:Sql 外键参考问题。但是为什么呢?,sql,sql-server,Sql,Sql Server,下面是我的er图。 我的要求是,客户可以有一套罩衫/pardi/lhenga或任何两件或任何一件产品 对于以上内容,下面是我的ER图。但问题是我无法从sql server创建数据。上面说 以下是所要求的关系: ALTER TABLE [dbo].[MEASURE_TYPE] WITH CHECK ADD CONSTRAINT [FK_BLOUSE_MEASUREMENT] FOREIGN KEY([MEASUREMENTID]) REFERENCES [dbo].[BLOUSE_MEAS
ALTER TABLE [dbo].[MEASURE_TYPE] WITH CHECK ADD CONSTRAINT [FK_BLOUSE_MEASUREMENT] FOREIGN KEY([MEASUREMENTID])
REFERENCES [dbo].[BLOUSE_MEASUREMENT] ([MEASUREMENTID])
GO
ALTER TABLE [dbo].[MEASURE_TYPE] CHECK CONSTRAINT [FK_BLOUSE_MEASUREMENT]
GO
ALTER TABLE [dbo].[MEASURE_TYPE] WITH CHECK ADD CONSTRAINT [FK_CUSTOMER] FOREIGN KEY([CUSTOMERID])
REFERENCES [dbo].[CUSTOMER] ([CUSTOMERID])
GO
ALTER TABLE [dbo].[MEASURE_TYPE] CHECK CONSTRAINT [FK_CUSTOMER]
GO
ALTER TABLE [dbo].[MEASURE_TYPE] WITH CHECK ADD CONSTRAINT [FK_LHENGA_MEASUREMENT] FOREIGN KEY([MEASUREMENTID])
REFERENCES [dbo].[LHENGA_MEASUREMENT] ([MEASUREMENTID])
GO
ALTER TABLE [dbo].[MEASURE_TYPE] CHECK CONSTRAINT [FK_LHENGA_MEASUREMENT]
GO
ALTER TABLE [dbo].[MEASURE_TYPE] WITH CHECK ADD CONSTRAINT [FK_PARDI_MEASUREMENT] FOREIGN KEY([MEASUREMENTID])
REFERENCES [dbo].[PARDI_MEASUREMENT] ([MEASUREMENTID])
GO
ALTER TABLE [dbo].[MEASURE_TYPE] CHECK CONSTRAINT [FK_PARDI_MEASUREMENT]
GO
从您的ER图中,我猜FK_罩衫的尺寸是针对MEASURE_TYPE.MEASUREMENTID
您是否试图在没有插入具有表度量值类型中相同度量值的行的情况下插入表度量值类型?您的
FK\u衬衫度量值
约束在度量值类型
表上。您试图在测量类型中插入衬衫测量的记录
,而没有在衬衫测量中插入相应的记录
。您正在measurementid
中插入一个measurementid
值相同的measurementid
在BLOUSE\u MEASUREMENT
表中不存在
首先在衬衫测量
中插入,然后在测量类型
中插入
更新
由于对多个表使用同一行作为外键,DB希望所有测量表中都存在measurementid
。在MEASURE\u TYPE
中,每个测量表都需要外键
因此,measurement\u-TYPE
将有以下列:Blouse\u-measurement\u-id
,Pardi\u-measurement\u-id
,Lhenga\u-measurement\u-id
,ordertype
,客户id
。和外键约束,从Blouse\u measurement\u id
到measurementid
,在Blouse\u measurement
中,以及类似地,用于其他表。您可以共享FK\u Blouse\u measurement
约束详细信息吗?这不显示FK。从对象资源管理器中,选择表->键->(对于每个FK\ux),右键单击->脚本键为->创建到->新建查询窗口->复制粘贴到此处。请不要在这里使用截图,因为我们无法复制文本。哦,好的。让我把它贴在这里。我已经插入了一行的上衣尺寸,帕迪尺寸,亨加尺寸。然后我在MEASUREMENTID中插入measurement_类型中的一行。然后它说。FK\u PARDI\u测量始终必须先填充FK目标行,然后填充源行。正如Rohit所说,将fk的代码发送给我们,这样我们就可以推断出问题。是的,如前所述,fk目标表是上衣测量、帕迪测量、亨加测量。我首先在所有3个表中插入了一行。我也在做同样的事情,在插入测量类型表时,它会说,fk\u pardi\u测量错误弹出。我在衬衫测量、pardi\u测量、LHENGA\u测量中插入了一行。然后我在MEASUREMENTID中插入measurement_类型中的一行。然后它说。FK_PARDI_测量我该怎么办?我已经用不同的测量ID在罩衫、lhenga和测量表中插入了3条记录。我必须删除与测量类型的关系,然后插入lhenga、pardi和罩衫的记录。。