java - Mysql 对行组的约束

标签 java mysql sql spring-boot

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

谢谢

最佳答案

据我所知,我们不能有这样的约束,这必须在代码中管理

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

关于java - Mysql 对行组的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58989731/

相关文章:

java - : Boolean method 'methodName' is always inverted 的 SuppressWarnings

sql - Lag() 获取雪花值的变化

mysql - 从两个表中选择返回空值

java - Hibernate SQL - 父子之间的中间表(不同类型)

mysql - 一般意义上的 h2 与 hibernate 和 MySql 之间的区别

sql - 同一张表上两个不同聚合函数的连接结果

java - Windows 上的 log4j2 RollingFile 给出 "The system cannot find the path specified"

java - 将 XSD 解析为树结构

java - 在java中使用公式语言进行IBM Notes查询

Mysql:金钱和花车