我正在尝试使用以下条件为两列(id_1和id_2)创建唯一索引约束: 如果两个不同的行在id_2列中具有相同的值,则其在id_1列中的值也必须相同。
有可能吗?
感谢。
答案 0 :(得分:2)
没有声明性约束来支持这种限制。您描述的方案不满足唯一约束的要求。 (您可以创建约束,但是您无法为id_1和id_2添加多个具有相同值的行。
如果您的意图是拒绝基于此限制的插入或更新,您可以使用行级触发器来完成此操作。
答案 1 :(得分:0)
您可以通过构建检查这些行并将其集成到触发器中的查询来实现。您将无法使用约束来执行此操作,当然也不能使用唯一约束。唯一约束强制行具有唯一值。这意味着对于约束中的字段或字段,没有两行可以具有相同的值。
答案 2 :(得分:0)
这是不可能的。 id_1
和id_2
上的唯一约束将强制每行具有id_1
和id_2
的不同(唯一)组合。这与你所描述的完全相反。
您可以通过使用触发器强制执行您的要求,但鉴于您提供的信息量很少,我不能说它是否是最佳解决方案。
复合外键也可以是解决方案,但我不知道id_1
和id_2
指的是什么,所以很难说,真的。