我的要求是,客户可以购买一捆上衣/ pardi / lhenga或任何两种或任意一种产品。
对于上述内容,以下是我的ER-DIAGRAM。但问题是我无法从sql server创建数据。它说。
以下是请求的关系:
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
答案 0 :(得分:3)
您的FK_BLOUSE_MEASUREMENT
约束位于MEASURE_TYPE
表上。您试图将MEASURE_TYPE
的记录插入BLOUSE_MEASUREMENT
中,而不在BLOUSE_MEASUREMENT
中进行相应的插入。您正在measurementid
中插入MEASURE_TYPE
,而measurementid
表中不存在具有相同值的BLOUSE_MEASUREMENT
。
首先在BLOUSE_MEASUREMENT
中进行插入,然后在MEASURE_TYPE
中进行插入。
更新
由于您在多个表中使用与外键相同的行,因此DB希望measurementid
出现在所有度量表中。 MEASURE_TYPE
中每个测量表都需要前键。
因此MEASURE_TYPE
将具有以下列:Blouse_measurement_id
,Pardi_measurement_id
,Lhenga_measurement_id
,ordertype
,customerid
。以及Blouse_measurement_id
中measurementid
到BLOUSE_MEASUREMENT
的外键约束,其他表也是如此。
答案 1 :(得分:0)
从您的ER图中,我想FK_BLOUSE_MEASUREMENT定位于MEASURE_TYPE.MEASUREMENTID。
您是否要插入表BLOUSE_MEASUREMENT而不在表MEASURE_TYPE中插入具有相同MEASUREMENTID的行?