Я сам столкнулся с этой проблемой, связанной с сообщением об ошибке, полученным при заполнении поля внешнего ключа. Я попал на эту страницу в надежде найти ответ. Проверенный ответ на этой странице действительно правильный, к сожалению, я чувствую, что ответ немного неполон для людей, не знакомых с SQL. Я довольно хорошо умею писать код, но запросы SQL для меня новы, как и создание таблиц базы данных.
Несмотря на то, что проверенный ответ является правильным
Майк М написал
«Способ работы FK заключается в том, что он не может иметь значение в этом столбце, которого нет также в столбце первичного ключа в указанной таблице».
Чего не хватает в этом ответе просто;
Сначала вы должны создать таблицу, содержащую первичный ключ.
Еще один способ сказать это;
Вы должны вставить данные в родительскую таблицу, содержащую первичный ключ, прежде чем пытаться вставить данные в дочернюю таблицу, содержащую внешний ключ.
Короче говоря, многие учебные пособия, похоже, размывают этот факт, так что если вы попробуете самостоятельно и не поймете, что существует порядок операций, вы получите эту ошибку. Естественно, после добавления данных первичного ключа ваши данные внешнего ключа в дочерней таблице должны соответствовать полю первичного ключа в родительской таблице, в противном случае вы все равно получите эту ошибку.
Если кто-то прочитал это далеко. Я надеюсь, что это помогло сделать проверенный ответ более ясным. Я знаю, что некоторые из вас могут чувствовать, что подобные вещи довольно просты и что открытие книги ответило бы на этот вопрос еще до того, как она была опубликована, но правда в том, что не все учатся одинаково.
Sup_Item_Cat
. Больше нечего сказать по этому поводу.