我目前正在处理的作业遇到问题。问题是:
编写一条INSERT语句,将该行添加到Products
表中:
为此语句使用列列表。
我想出的答案是:
INSERT INTO Products(CategoryID, ProductCode, ProductName, Description, ListPrice, DiscountPercent, DateAdded)
VALUES (4, 'dgx_640', 'Yamaha DGX 640 88-Key Digital Piano', 'Long description to come.', 799.99, 0, SYSDATETIME())
但是当我尝试执行它时,出现错误提示
INSERT语句与FOREIGN KEY约束“ FK__Products__Catego__3B75D760”冲突。数据库“ MyGuitarShop”的表“ dbo.Categories”的列“ CategoryID”中发生了冲突。 该声明已终止。
任何帮助将不胜感激
答案 0 :(得分:1)
错误非常明显-您正试图在CategoryID
的{{1}}列中插入一个值,这会导致违反类别表的外键约束。
这意味着:您正试图在Products
表中不存在的值4
中插入值(Products.CategoryID
。外键约束的工作是完全防止这种情况-出于充分的理由,不允许允许您这样做。
所以基本上:您需要先确保要插入到外键列中的值确实存在在引用表(Category
)中,然后再执行Category
答案 1 :(得分:0)
您试图在外键中插入一个它引用的表中不存在的值,在这种情况下,它是CategoryID
。
要解决此问题,您需要先在表CategoryID
的{{1}}列中插入数字4