加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

在MySQL中跨链接表实现UNIQUE

发布时间:2021-01-21 01:47:25 所属栏目:MySql教程 来源:网络整理
导读:用户是一个人,一个人有一个公司-用户->人是一对一的,人->公司是多对一的. person_id在USER表中为FK. company_id在PERSON表中为FK. 一个人可能不是用户,但用户始终是一个人. 如果company_id在用户表中,则可以基于username和company_id创建一个唯一键,但是不

用户是一个人,一个人有一个公司-用户->人是一对一的,人->公司是多对一的.

person_id在USER表中为FK.
company_id在PERSON表中为FK.

一个人可能不是用户,但用户始终是一个人.

如果company_id在用户表中,则可以基于username和company_id创建一个唯一键,但是不是,如果是,它将是数据的重复.

目前,我正在RoseDB Manager包装器代码中实现唯一的用户名/公司ID规则,但感觉不对.如果可以的话,我想在数据库级别定义唯一规则,但是我不确定如何实现.我尝试过这样的事情:

alter table user add unique(used_id,person.company_id);

但这不起作用.

通过阅读文档,我找不到一个可以完成几乎所有相似操作的示例.我是在尝试添加不存在的功能,还是在这里缺少某些功能?

最佳答案 好吧,没有简单的事情可以满足您的需求.但是,您可以使用BEFORE INSERT和BEFORE UPDATE triggers强制实施所需的约束.有关如何处理使触发器失败的信息,请参见this SO question about raising MySQL errors.

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!