我需要对表进行索引或约束的唯一性检查,但这只有在 bool 字段的值为真时才会发生。如果它是假的,那么有一个重复的行就可以了。我不认为这在 mysql 中有约束或索引是可能的,那么有没有其他可能的解决方案来解决这个问题?
最佳答案
如果您可以稍微更改字段的定义,将“1”表示为“true”,将“NULL”表示为false,那么您可以在这两列上使用唯一索引:
create unique index idx_table_col1_col2 on table(col1, col2)
NULL
值可以在唯一索引中重复。
或者,您必须使用触发器来强制执行此条件。
关于带条件的 MySQL 唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532830/