【发布时间】:2014-05-28 13:29:39
【问题描述】:
我有这个 MySQL 表:
id | staffId | companyId | active | somevalue
当我在staffId、companyId 和active 上创建唯一索引时,我最多可以存储两条记录。一个有活动的1,一个有活动的0。
我想确保我只能有一个活动记录,而可以有多个非活动记录。例如:
1 | 1 | 1 | 1 | 1
1 | 1 | 1 | 0 | 5
1 | 1 | 1 | 0 | 7
应该可以,但是添加这条记录应该会报错:
1 | 1 | 1 | 1 | 9
【问题讨论】:
-
您必须在查询中强制执行该限制,而不是使用表约束。
-
由于 MySQL 不支持条件索引,您可以使用触发器自己检查和验证。 This 可能会有所帮助。