微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL值的唯一性

如何解决MySQL值的唯一性

| 我有一个包含列的表:
employer_id
contact_id
primary
前两个是整数,最后一个是1/0的tinyint。雇主可以加入多个联系人,反之亦然。但是,我要强制说,对于每个特定雇主,只能有一个实例,其中primary = 1。 primary = 0的地方可能有很多。 有没有办法通过在MysqL中使用约束/键来做到这一点? 谢谢     

解决方法

不是通过键,而是可以设置插入/更新触发器来检查“ 1”。 编辑:实际上,我认为有一种方法:您使用
employer_id
作为主键创建第二张表,并使用其主联系人创建第二个字段。因此,您将拥有以下两个表:
===================================   ================================
|          maintable              |   |       maincontacttable       |
===================================   ================================
|employer_id|contact_id|...data...|   |employer_id|primary_contact_id|
|   PK      |    FK    |          |   |    PK FK  |       FK         |
===================================   ================================
不再有“ 4”列。由于
employer_id
是第二张表中的键,因此最多只能有一个条目。 您通过左外部连接获得主要联系人,它返回主要联系人或
null
。     ,几天前我有一个类似的案例,我要做的是再添加一列“ created_at”,这样我就可以检索“ primary”(最后插入的,primary = 1);     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。