首页 > 解决方案 > 如何确保插入到表中的值存在于另一个表中?

问题描述

我可能要么错过了一些东西,要么希望只是想多了,但是......

场景是我有一个包含多个表的 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中,我如何确保仅允许添加“液压” ?

我最初考虑创建复合键并尝试研究条件插入,但实际上没有得到任何结果,尤其是后者。

提前致谢...

标签: mysql

解决方案


推荐阅读