0
首先,我有簡單的[SomeType]
表,其中列[ID]
和[Name]
。SQL對列值的約束取決於其他列的值
我也有[SomeTable]
表,與像場:
[ID],
[SomeTypeID] (FK),
[UserID] (FK),
[IsExpression]
最後,我不得不數據庫層上做了約束:
- 混凝土
[SomeType]
的ID(實際上,爲所有,但一個), - 相同
UserID
, - 只有一個條目應該有
[IsExpression]
等於1
(IsExpression
爲BIT
型)
我不知道,如果是病情複雜或沒有,但我不知道怎麼寫。你將如何實現這樣的約束?
索引能幫助我避免在[IsExpression]爲true的情況下添加新條目,如果此用戶對此SomeType已具有IsExpression true? – prvit
@prvit,第二個索引正是你想要的 –
@prvit是的,如果一個索引被創建爲'UNIQUE',那麼這意味着你不能輸入任何重複的記錄到索引的一部分。 –