web-dev-qa-db-ja.com

INSERTステートメントがFOREIGNKEY制約と競合しました

エラー:System.Data.SqlClient.SqlException:INSERTステートメントがFOREIGNKEY制約「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 

Item.ItemIDおよびItemUnitsに関連するItemSavedUnits.ItemIDのFK制約に制約がまったくない場合、ItemSavedUnitsへの挿入で問題が発生する理由がよくわかりません。挿入しようとしているItemIDは、Itemテーブルに存在します。

13
PositiveGuy

ItemId 92439がItemUnitsだけでなく、Itemテーブルにも存在することを絶対に確信していますか?

または

Selectステートメントはnullを返しますか?

17
Jim B

最初にそのIDを持つItemUnitsの行が必要なようです-挿入のSELECTステートメント部分は何を返しますか?行がありませんか?

また、ItemSavedUnitsテーブルに問題を引き起こす可能性のあるトリガーがありますか?

1
SqlRyan

外部キー制約違反はItemSavedUnitsテーブルを処理していないようです-違反例外はItemSavedテーブルではなくItemSavedUnitsテーブルの制約によってスローされています。 ItemSavedUnitsに挿入しようとしているトリガーはItemSavedにありますか?

1
Dathan