首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证一致性约束Mysql

验证一致性约束Mysql
EN

Stack Overflow用户
提问于 2017-05-27 03:42:42
回答 2查看 250关注 0票数 0

如何检查表中的下列一致性?

桌子是这样的:

代码语言:javascript
复制
Employee:

employee_id | Name | job_title | department_name

所有拥有相同职位的员工必须属于同一个部门。 例如:所有作为股票经理工作的员工都属于部门托运。如果任何员工在具有相同职务名称的其他部门工作,则脚本必须以下列格式显示违反上述一致性约束的行为。

职务名称:雇员ID

EN

回答 2

Stack Overflow用户

发布于 2017-05-27 03:58:00

单独使用CONSTRAINTS并不完全可能,因为您仍然需要依赖于没有存储在任何地方的数据。这可以通过另一个仅讨论JOB_TITLEDEPARTMENT之间关系的查找表来实现。

除非这种关系没有实现,否则此要求可能不会如您所期望的那样起作用。

以下是你所期望的:

代码语言:javascript
复制
CREATE TABLE JOB_DEPT_RELATIONSHIP AS (
    JOB_TITLE VARCHAR(255) NOT NULL PRIMARY KEY,
    DEPARTMENT VARCHAR(255) NOT NULL,
    UNIQUE(JOB_TITLE, DEPARTMENT)
);

那么,您的实际表可以定义为这样,我猜:

代码语言:javascript
复制
CREATE TABLE EMPLOYEE AS (
    EMPLOYEE_ID INT AUTO_INCREMENT PRIMARY KEY,
    EMPLOYEE_NAME VARCHAR(255) NOT NULL,
    JOB_TITLE VARCHAR(255) NOT NULL,
    DEPARTMENT_NAME VARCHAR(255) NOT NULL,
    CONSTRAINT FK_JOB_DEPT_RELATIONSHIP FOREIGN KEY (JOB_TITLE, DEPARTMENT_NAME) REFERENCES JOB_DEPT_RELATIONSHIP(JOB_TITLE, DEPARTMENT)
);

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2017-05-27 07:18:28

我相信在同一所大学就读时,我们可能被赋予同样的任务。我现在就这么做了,这些桌子也许能帮别人看清楚。我还是习惯了这里的格式。

我不允许发布图片,所以我会尝试发送一个链接,也许合适的用户可以为我编辑这个,谢谢:http://imgur.com/a/FeFRz

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44212742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档