MySQL具有条件的唯一约束

MySQL具有条件的唯一约束,mysql,unique-constraint,Mysql,Unique Constraint,我正在尝试为两列(id_1和id_2)创建唯一索引约束,条件如下: 如果两个不同的行在id_2列中具有相同的值,则它们在id_1列中的值也必须相同 可能吗 谢谢。没有声明性约束来支持这种约束。您描述的场景不满足唯一约束的要求。(您可以创建约束,但不能为id_1和id_2添加多个具有相同值的行 如果您的目的是拒绝基于此限制的插入或更新,则可以使用行级触发器来完成此操作。您可以通过构建检查这些行的查询并将其集成到触发器中来完成此操作。您将无法使用约束,当然也无法使用唯一约束来完成此操作。唯一约束in

我正在尝试为两列(id_1和id_2)创建唯一索引约束,条件如下: 如果两个不同的行在id_2列中具有相同的值,则它们在id_1列中的值也必须相同

可能吗


谢谢。

没有声明性约束来支持这种约束。您描述的场景不满足唯一约束的要求。(您可以创建约束,但不能为id_1和id_2添加多个具有相同值的行


如果您的目的是拒绝基于此限制的插入或更新,则可以使用行级触发器来完成此操作。

您可以通过构建检查这些行的查询并将其集成到触发器中来完成此操作。您将无法使用约束,当然也无法使用唯一约束来完成此操作。唯一约束int强制行具有唯一值。这意味着对于约束中的一个或多个字段,任何两行都不能具有相同的值。

这是不可能的。对
id_1
id_2
的唯一约束将强制每行具有不同的(唯一)值
id\u 1
id\u 2
的组合。这与您描述的完全相反

您可以使用触发器强制执行您的要求,但鉴于您提供的信息量很小,我不能说这是否是最佳解决方案

复合外键也可能是解决方案,但我不知道
id_1
id_2
指的是什么,所以很难说