Оператор INSERT конфликтует с ограничением FOREIGN KEY - SQL Server - PullRequest
198 голосов
/ 03 июня 2010

Я получаю следующую ошибку. Не могли бы вы помочь мне?

Сообщение 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 .. но без радости: - (

Ответы [ 13 ]

1 голос
/ 12 декабря 2018

Я также получил ту же ошибку в моем коде SQL, это решение работает для меня,


Проверка данных в первичной таблице. Возможно, вы вводите значение столбца, которого нет в столбце первичного ключа.

1 голос
/ 23 октября 2015

Я столкнулся с этой проблемой, когда мои поля значений вставки содержали табуляции и пробелы, которые не были очевидны невооруженным глазом. Я создал свой список значений в Excel, скопировал и вставил его в SQL, и выполнил запросы, чтобы найти несоответствия в моих полях FK.

Запросы на совпадение не обнаружили наличие полей и пробелов в моем поле FK, но INSERT распознал их и продолжал генерировать ошибку.

Я снова протестировал, скопировав содержимое поля FK в одну запись и вставив его в запрос вставки. Когда эта запись также не удалась, я посмотрел поближе на данные и, наконец, обнаружил вкладки / пробелы.

После очистки удаленных вкладок / пробелов моя проблема была решена. Надеюсь, это кому-нибудь поможет!

1 голос
/ 14 мая 2014

У меня была такая же проблема, когда я использовал миграции кода для создания базы данных для приложения MVC 5. В конце концов я обнаружил, что метод seed в моем файле configuration.cs вызывает проблему. Мой начальный метод создавал запись таблицы для таблицы, содержащей внешний ключ, перед созданием записи с соответствующим первичным ключом.

...