INSERT语句与FOREIGN KEY约束冲突

时间:2009-12-01 19:38:15

标签: sql-server tsql sql-server-2008

  

错误: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 

我真的不明白为什么如果我对Item.SavedUnits.ItemID的一个与Item.ItemID和ItemUnits相关的FK约束完全没有约束,为什么我在插入ItemSavedUnits时遇到问题。我尝试插入的ItemID确实存在于Item表中。

3 个答案:

答案 0 :(得分:17)

您是否完全确定ItemId 92439存在于Item表中,而不仅仅存在于ItemUnits中?

你的select语句是否返回null?

答案 1 :(得分:1)

看起来你需要首先使用该ID在ItemUnits中输入一行 - 插入的SELECT语句部分返回什么?没有行?

此外,ItemSavedUnits表上是否有可能导致问题的触发器?

答案 2 :(得分:1)

您的外键约束违规似乎没有处理ItemSavedUnits表 - ItemSaved表上的约束而不是ItemSavedUnits表引发了违规异常。 ItemSavedUnits上是否有触发器尝试插入ItemSaved