【发布时间】:2015-04-16 10:57:21
【问题描述】:
我需要在表上使用索引或约束进行唯一性检查,但这只有在布尔字段的值为 true 时才会发生。如果它是错误的,那么存在重复行就可以了。我认为mysql中的约束或索引是不可能的,那么有没有其他可能的解决方案来解决这个问题?
【问题讨论】:
标签: mysql indexing constraints unique conditional-statements
我需要在表上使用索引或约束进行唯一性检查,但这只有在布尔字段的值为 true 时才会发生。如果它是错误的,那么存在重复行就可以了。我认为mysql中的约束或索引是不可能的,那么有没有其他可能的解决方案来解决这个问题?
【问题讨论】:
标签: mysql indexing constraints unique conditional-statements
如果您可以将字段的定义稍微更改为“1”代表“真”,“NULL”代表假,那么您可以在两列上使用唯一索引:
create unique index idx_table_col1_col2 on table(col1, col2)
NULL 值可以在唯一索引中重复。
或者,您必须使用触发器来强制执行此条件。
【讨论】: