表的SQL Server外键问题

时间:2018-12-12 19:08:49

标签: sql-server foreign-keys

今天我有一个简单的问题。我正在为鞋店创建一个数据库,在第一张表中插入几行之后,我继续向第二张表中添加了几行(我只有2个表)。在运行代码时,我收到此错误:

  

第2级第1层第1行2627消息
  违反UNIQUE KEY约束“ ForeignKey”。无法在对象“ dbo.Product”中插入重复键。重复的键值为(reebok)。

我不确定这是怎么回事,因为“ categoryid”在两个表中都相同。但是这是我执行的第一个代码,然后是第二个给我错误消息的代码

表1:

INSERT INTO [myStore].[dbo].[category] ([categoryid], [description])
VALUES ('puma', 'men'), ('nike', 'women'), ('reebok', 'children') 

表2(引起错误消息)

INSERT INTO [myStore].[dbo].[product] ([productid], [description], [categoryid], [price], [size])
VALUES (1, 'Running Shoes', 'puma', 70, 'L'), 
       (2, 'Slides', 'nike', 45, 'S'),
       (3, 'Kids Soccer Shoes', 'reebok', 55, 'M'),
       (4, 'Kids Football Shoes', 'reebok', 40, 'L'),
       (5, 'Basketball Shoes', 'nike', 90, 'S')

1 个答案:

答案 0 :(得分:0)

Violation of UNIQUE KEY constraint 'ForeignKey'. Cannot insert duplicate key in object 'dbo.Product'. The duplicate key value is (reebok).

您的关键字是-唯一键。将这两个相加会弹出此错误:

(3, 'Kids Soccer Shoes', 'reebok', 55, 'M'),
(4, 'Kids Football Shoes', 'reebok', 40, 'L'),

检查“ ForeignKey”上的索引,该列在整个表中似乎设置为唯一值。