我有一个包含以下示例数据的数据:
ID CID Name ImageLocation Order
1 1 Suit Jacket Content/Berwin/Content/Images/SuitJacket.jpg 1
2 1 Trousers Content/Berwin/Content/Images/Trousers.jpg 2
4 2 Jumper Content/Berwin/Content/Images/Jumper.jpg 1
5 3 Trousers Content/Berwin/Content/Images/Trousers.jpg 1
6 4 Suit Jacket Content/Berwin/Content/Images/SuitJacket.jpg 1
ID是PK,CID是FK,订单是要在FK订单中显示的订单
无论如何,要强制Order
列中的数字在其CID
范围内是唯一的。即在1 or 2
?
CID is 1
答案 0 :(得分:3)
是的,这是可能的。
您可以向数据库中添加新的“唯一键”。
CID
和Order
答案 1 :(得分:2)
如果您的表中有示例数据,并且您不希望能够插入CID = 1且order = 1或2的另一行,那么您可以通过向这些列添加唯一索引来执行此操作
CREATE UNIQUE NONCLUSTERED INDEX IX_CID_ORDER ON dbo.TABLE
(
CID,
Order
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
答案 2 :(得分:2)
...或者您可以在两列中添加唯一约束
ADD CONSTRAINT CID_Order_Const UNIQUE(CID, Order)