Я получаю следующую ошибку. Не могли бы вы мне помочь?
Сообщение 547, уровень 16, состояние 0, строка 1
Оператор INSERT конфликтует с ограничением FOREIGN KEY "FK_Sup_Item_Sup_Item_Cat". Конфликт произошел в базе данных "dev_bo", таблица "dbo.Sup_Item_Cat". Заявление было прекращено.
Код:
insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id,
status_code, last_modified_user_id, last_modified_timestamp, client_id)
values (10162425, 10, 'jaiso', '123123',
'a', '12', '2010-12-12', '1062425')
Последний столбец client_id
вызывает ошибку. Я попытался поместить значение, которое уже существует в dbo.Sup_Item_Cat
столбце, в соответствии с sup_item .. но не радость :-(
sql
sql-server
sql-server-2005
foreign-keys
SmartestVEGA
источник
источник
Sup_Item_Cat
. Больше нечего сказать по этому поводу.SELECT * FROM Sup_Item_Cat WHERE sup_item_cat_id = '123123'
возвращает результаты?Ответы:
В вашей таблице
dbo.Sup_Item_Cat
есть ссылка внешнего ключа на другую таблицу. Способ работы FK заключается в том, что он не может иметь значение в этом столбце, которого нет также в столбце первичного ключа указанной таблицы.Если у вас есть SQL Server Management Studio, откройте его и
sp_help
'dbo.Sup_Item_Cat
'. Посмотрите, к какому столбцу относится этот FK, и на какой столбец какой таблицы он ссылается. Вы вставляете некоторые плохие данные.Дайте мне знать, если вам нужно что-то объяснить лучше!
источник
Я сам столкнулся с этой проблемой, связанной с сообщением об ошибке, полученным при заполнении поля внешнего ключа. Я попал на эту страницу в надежде найти ответ. Проверенный ответ на этой странице действительно правильный, к сожалению, я чувствую, что ответ немного неполон для людей, не знакомых с SQL. Я довольно хорошо умею писать код, но запросы SQL для меня новы, как и создание таблиц базы данных.
Несмотря на то, что проверенный ответ является правильным
Чего не хватает в этом ответе просто;
Еще один способ сказать это;
Короче говоря, многие учебные пособия, похоже, размывают этот факт, так что если вы попробуете самостоятельно и не поймете, что существует порядок операций, вы получите эту ошибку. Естественно, после добавления данных первичного ключа ваши данные внешнего ключа в дочерней таблице должны соответствовать полю первичного ключа в родительской таблице, в противном случае вы все равно получите эту ошибку.
Если кто-то прочитал это далеко. Я надеюсь, что это помогло сделать проверенный ответ более ясным. Я знаю, что некоторые из вас могут чувствовать, что подобные вещи довольно просты и что открытие книги ответило бы на этот вопрос еще до того, как она была опубликована, но правда в том, что не все учатся одинаково.
источник
Вы пытаетесь вставить запись со значением в столбце внешнего ключа, которого нет во внешней таблице.
Например: если у вас есть таблицы «Книги» и «Авторы», где «Книги» имеют ограничение внешнего ключа для таблицы «Авторы», и вы пытаетесь вставить запись книги, для которой нет записи об авторе.
источник
Вам нужно будет опубликовать свое заявление для получения дополнительных разъяснений. Но...
Эта ошибка означает, что таблица, в которую вы вставляете данные, имеет отношение внешнего ключа к другой таблице. Прежде чем данные могут быть вставлены, значение в поле внешнего ключа должно сначала существовать в другой таблице.
источник
Проблема не в client_id, как я вижу. Похоже, проблема в 4-м столбце sup_item_cat_id
Я бы побежал
и обратите внимание на столбец constraint_keys, возвращаемый для внешнего ключа FK_Sup_Item_Sup_Item_Cat, чтобы подтвердить, какой столбец является актуальной проблемой, но я уверен, что это не тот, который вы пытаетесь исправить. Кроме того, «123123» выглядит подозрительно.
источник
Я обнаружил, что все поля должны точно соответствовать.
Например, отправка 'cat dog' - это не то же самое, что отправка 'catdog'.
Чтобы устранить эту проблему, я написал сценарий FK-кода из таблицы, в которую я вставлял данные, запомнил «Внешний ключ», который имел ограничения (в моем случае их было 2), и убедился, что значения этих двух полей совпадают. Точно так же, как они были в таблице, которая выдавала ошибку FK Constraint.
Как только я исправил 2 поля, в которых были проблемы, жизнь стала хорошей!
Если вам нужно лучшее объяснение, дайте мне знать.
источник
Я также получил ту же ошибку в моем коде SQL, это решение работает для меня,
Проверьте данные в первичной таблице. Возможно, вы вводите значение столбца, которого нет в столбце первичного ключа.
источник
Это означает именно то, что он говорит. Вы пытаетесь вставить значение в столбец с ограничением FK, которое не соответствует никаким значениям в таблице поиска.
источник
Дважды проверьте поля в отношении, для которого определен внешний ключ. В SQL Server Management Studio могут отсутствовать поля, которые вы хотели выбрать при определении отношения. Это сожгло меня в прошлом.
источник
источник
Отсутствие данных родительской таблицы вызывает проблему. В вашей проблеме отсутствие данных в "dbo.Sup_Item_Cat" вызывает проблему
источник
У меня была такая же проблема, когда я использовал миграции кода для создания своей базы данных для приложения MVC 5. В конце концов я обнаружил, что метод seed в моем файле configuration.cs вызывает проблему. Мой начальный метод создавал запись таблицы для таблицы, содержащей внешний ключ, перед созданием записи с соответствующим первичным ключом.
источник
Я столкнулся с этой проблемой, когда мои поля значений вставки содержали табуляции и пробелы, которые не были очевидны невооруженным глазом. Я создал свой список значений в Excel, скопировал и вставил его в SQL, и выполнил запросы, чтобы найти несоответствия в моих полях FK.
Запросы на совпадение не обнаружили наличие полей и пробелов в моем поле FK, но INSERT распознал их и продолжал генерировать ошибку.
Я снова протестировал, скопировав содержимое поля FK в одну запись и вставив его в запрос вставки. Когда эта запись также не удалась, я посмотрел ближе на данные и, наконец, обнаружил вкладки / пробелы.
После очистки удаленных вкладок / пробелов моя проблема была решена. Надеюсь, это поможет кому-то!
источник