Оператор INSERT конфликтует с ограничением FOREIGN KEY - PullRequest
12 голосов
/ 01 декабря 2009

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

Вот мой стол:

ItemSavedUnits

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

Вот мое утверждение вставки:

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

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

Ответы [ 3 ]

17 голосов
/ 01 декабря 2009

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

или

Ваш оператор выбора возвращает ноль?

1 голос
/ 01 декабря 2009

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

1 голос
/ 01 декабря 2009

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

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

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