Как убедиться, что значение, вставляемое в таблицу, существует в другой таблице? - PullRequest
0 голосов
/ 04 мая 2020

Возможно, я либо что-то упустил, или, надеюсь, просто переосмыслил это, но ...

Сценарий таков, что у меня есть база данных MySQL с несколькими таблицами, большинство из которых имеют первичные и внешние ключи на месте и работают, как и ожидалось.

Но для этой конкретной таблицы я sh смогу принять значения только для определенного поля, если это значение существует в поле другой таблицы.

Так Например, у меня есть следующее:

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 много других дубликатов по другим причинам, и этого нельзя избежать в этом случае.)

Теперь я хочу иметь возможность добавлять строки в журнал только в том случае, если в Faults.fault .

существует значение Log.fault .

INSERT INTO Log (date, fault)
VALUE ('040520','hydraulic');

Как я могу гарантировать, что это позволяет только 'hydrauli c' быть добавленным, если оно существует в Faults.fault , которого в настоящее время нет ?

Сначала я думал о создании составных ключей, а также попытался посмотреть г в условные вставки, но на самом деле никуда не денется, особенно с последними.

Заранее спасибо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...