Подтвердить что ты не робот

Оператор INSERT противоречил ограничениям FOREIGN KEY

Ошибка: System.Data.SqlClient.SqlException: инструкция INSERT противоречила ограничению FOREIGN KEY "FK__Item__order__3AE27131". Конфликт произошел в базе данных "pmall", таблице "dbo.ItemSaved", в столбце "id".

Здесь моя таблица:

ItemSavedUnits

  • id
  • ItemID (устанавливается в этой таблице: FK - Item.id)
  • ... и т.д..

Здесь мой оператор insert:

insert into ItemSavedUnits (ItemID, name, Price)
select ItemID, name,Price
from ItemUnits where ItemID = 92439 

Я действительно не понимаю, почему, если ограничение FK на ItemSavedUnits.ItemID, связанное с Item.ItemID и ItemUnits, вообще не имеет ограничений, почему у меня возникает проблема с вставкой в ​​ItemSavedUnits. ItemID, который я пытаюсь вставить, существует в таблице Item.

4b9b3361

Ответ 1

Вы абсолютно уверены, что ItemId 92439 существует в таблице Item, а не только в ItemUnits?

или

Является ли ваш оператор select возвращающим null?

Ответ 2

Похоже, вам нужна строка в ItemUnits с этим идентификатором вначале - что возвращает часть инструкции SELECT вашей вставки? Нет строк?

Кроме того, есть ли триггер в таблице ItemSavedUnits, который может вызвать проблемы?

Ответ 3

Нарушение ограничения внешнего ключа, похоже, не связано с таблицей ItemSavedUnits - исключение нарушения порождается ограничением в таблице ItemSaved, а не таблицей ItemSavedUnits. Есть ли триггер на ItemSavedUnits, который пытается вставить в ItemSaved?