【问题标题】:Mysql Constraint on group of rows [duplicate]行组上的Mysql约束[重复]
【发布时间】:2020-03-18 06:13:56
【问题描述】:

我有一个可以支持多种语言的聊天机器人。为了将这种关系存储在 sql 中,我创建了 Bot 和语言映射表,如果 bot 有 3 种语言,则会在 mysql 的映射表中创建 3 行。在这个映射表中,我还有另一列名为is_primary,它说明这是否是机器人的主要语言。在这里,我想确保机器人始终具有至少且至多一种主要语言。有没有办法将约束放在行的组合中以确保这一点。

谢谢

【问题讨论】:

  • 为了在 MySQL 的数据库级别上确保此条件,您需要创建三个触发器。唯一索引无济于事。
  • @olegsv 可以,但首先会尝试找到简单的解决方案。谢谢

标签: java mysql sql spring-boot


【解决方案1】:

AFAIK,我们不能有这样的约束,这必须在代码中进行管理

但是,如果您不使用 is_primary 字段,而是对结构进行规范化并为机器人和语言映射提供单独的表,那么您可以使用复合主键来确保每个两者都只有一种主要语言。

【讨论】:

    猜你喜欢
    • 2018-03-11
    • 1970-01-01
    • 2019-04-03
    • 2016-12-27
    • 1970-01-01
    • 2019-02-27
    • 2021-08-28
    • 2016-02-10
    • 2011-01-31
    相关资源
    最近更新 更多