mysql - 如何确保插入到表中的值存在于另一个表中?
问题描述
我可能要么错过了一些东西,要么希望只是想多了,但是......
场景是我有一个包含多个表的 MySQL 数据库,其中大多数都有主键和外键,并且按预期工作。
但是对于这个特定的表,如果该值存在于另一个表的字段中,我希望它只接受该特定字段的值。
举个例子,我有以下内容;
Faults
ID fault
1 electrical
2 mechanical
3 electrical
4 operational
5 electrical
Log
ID date fault
1 300420 mechanical
2 010520 other
3 030520 mechanical
4 040520 electrical
(由于其他原因, Faults.fault中有许多重复项,在这种情况下无法避免。)
现在我只希望能够在Log.fault值存在于Faults.fault的情况下向 Log 添加行。
因此,以下内容;
INSERT INTO Log (date, fault)
VALUE ('040520','hydraulic');
如果它存在于当前不存在的Faults.fault中,我如何确保仅允许添加“液压” ?
我最初考虑创建复合键并尝试研究条件插入,但实际上没有得到任何结果,尤其是后者。
提前致谢...
解决方案
推荐阅读
- python - 为什么我的 r2_score 取决于因变量的单位
- python - python中的硒:click()在方法中不起作用
- php - Wordpress AJAX 加载更多检查帖子结尾
- python - 如何修复 Seaborn clustermap 中切割的细胞
- php - 如何使用给定的 php 代码在 html 页面中显示所有 json 数据
- wpf - NotifyCollectionChangedAction.Reset 清空组合框文本
- node.js - 找不到对象的索引
- matlab - 在 Matlab 中使用平面切割裁剪 3D 网格
- oracle - HTTP500 错误 LoadRunner Oracle NCA 脚本
- c++ - 我可以制作一个基于子元素具有不同回报的虚函数吗?