gpt4 book ai didi

mysql - 有没有办法检查表中的新行是否与其他表中的条目一致? [SQL]

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:21 25 4
gpt4 key购买 nike

我正在使用 MySQL Workbench CE 完成一项大学作业。我有 4 个表:申请人、大学、工作、面试Interview 在其他 3 个表中有外键:appID(申请人 ID)、uniID(大学 ID)和 jobID(工作 ID)。此外,job 表有一个 uni 列,它是 universities.id 的外键。本质上,每份工作都有一个工作编号和与之相关的大学。除了一些其他信息外,每次面试都有申请人、工作和大学。

我想弄清楚如何检查输入到 interview 表中的工作机会(工作编号 + 其相关大学)是否确实存在于 job 表中。

例如,如果 job 中的唯一行是:

编号 |职位编号 |统一编号 | ..
1 1 1 .

那么面试不应该接受如下内容:

编号 |应用编号 |职位编号 |统一编号 | ...
x x 1 2 .

因为没有 JobID = 1UniID = 2 的作业。

SELECT * FROM job as J LEFT JOIN interview as I ON J.uni = I.uniid WHERE J.id = I.jobid 是我为这个问题想出的检查,但是,我不确定我是否应该尝试在触发器中或作为断言的一部分使用它。

最佳答案

您正在寻找一个外键关系。

如果 jobs 表在两列上还没有主键/唯一键,则定义一个:

alter table jobs add constraint unq_jobs_jobid_uniid on job(jobID, uniID);

然后,您可以向interviews 添加一个外键:

alter table interviews add constraint fk_interviews_jobid_uniID
foreign key (jobID, uniID) references job(jobID, uniID);

请注意,即使 jobID 已经是 jobs 中的主键,这仍然有效。

关于mysql - 有没有办法检查表中的新行是否与其他表中的条目一致? [SQL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53213252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com