MySQL只有一个活动记录,多个非活动记录。

3

我有一个MySQL表:

id | staffId | companyId | active | somevalue

当我在 staffIdcompanyIdactive 上创建一个 UNIQUE 索引时,最多只能存储两条记录。其中之一为活动记录,其值为 1,另一条为非活动记录,其值为 0
我希望确保只能有一条活动记录,而可以有多条非活动记录。例如:
1 | 1 | 1 | 1 | 1

1 | 1 | 1 | 0 | 5

1 | 1 | 1 | 0 | 7

应该是可能的,但添加此记录应该会导致错误:
1 | 1 | 1 | 1 | 9

你需要在查询中强制执行这个限制,而不是使用表约束。 - undefined
由于MySQL不支持条件索引,您可以使用触发器自行检查和验证。这个链接可能会有所帮助。 - undefined
1个回答

0
选择NULL而不是0作为一个非活动记录似乎可以工作 :-) 我想知道是否有更好的解决方案?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接