【问题标题】:MySQL only one active record, multiple inactive recordsMySQL只有一条活动记录,多条非活动记录
【发布时间】:2014-05-28 13:29:39
【问题描述】:

我有这个 MySQL 表:

id | staffId | companyId | active | somevalue

当我在staffIdcompanyIdactive 上创建唯一索引时,我最多可以存储两条记录。一个有活动的1,一个有活动的0

我想确保我只能有一个活动记录,而可以有多个非活动记录。例如:

1 | 1 | 1 | 1 | 1

1 | 1 | 1 | 0 | 5

1 | 1 | 1 | 0 | 7

应该可以,但是添加这条记录应该会报错:

1 | 1 | 1 | 1 | 9

【问题讨论】:

  • 您必须在查询中强制执行该限制,而不是使用表约束。
  • 由于 MySQL 不支持条件索引,您可以使用触发器自己检查和验证。 This 可能会有所帮助。

标签: mysql sql unique


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-02-05
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多