我的RelationshipCodeLookup
表使用AgentTransmission
表的主键字段作为外键。 RelationshipCodeLookup
表中只有5条记录与AgentTransmission
主键相同。
是否可以在RelationshipCodeLookup
上创建一个复合键,其中包含来自AgentTransmission
的外键和一个最多只有5个的int
字段?例如,一个代理的完整记录组将是:
FK CK
132 1
132 2
132 3
132 4
132 5
如果尝试使用FK
132
添加其他记录,则会违反对表的某种约束,并且无法添加记录。
这可能吗?
答案 0 :(得分:1)
如果我理解你的问题,我认为对CK列的简单检查约束可以满足您的需要。 Check约束要求CK列中的值在指定范围内(1到5)。
CREATE TABLE RelationshipCodeLookup(
FK INT NOT NULL,
CK INT NOT NULL,
CONSTRAINT PK_RelationshipCodeLookup PRIMARY KEY CLUSTERED ( FK, CK )
);
ALTER TABLE RelationshipCodeLookup WITH CHECK ADD CONSTRAINT CK_RelationshipCodeLookup CHECK (CK>=1 AND CK<=5);
ALTER TABLE RelationshipCodeLookup CHECK CONSTRAINT CK_RelationshipCodeLookup;