具有条件的MySQL唯一索引

时间:2015-02-16 00:13:32

标签: mysql indexing constraints unique conditional-statements

我需要在表上使用Index或Constraint进行唯一性检查,但只有在布尔字段的值为true时才会发生这种情况。如果它是假的,那么重复的行就没问题了。我不认为这可以通过mysql中的约束或索引来实现,那么还有其他可能的解决方案来解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

如果你可以稍微改变字段的定义为" 1" for" true"和" NULL"如果为false,则可以在两列上使用唯一索引:

create unique index idx_table_col1_col2 on table(col1, col2)

NULL值可以在唯一索引中重复。

或者,您必须使用触发器来强制执行此条件。