我正在尝试使用以下查询
将外键添加到我现有的列中ALTER TABLE Sub_Category_Master
ADD FOREIGN KEY (Category_ID) REFERENCES Category_Master(Category_ID)
但我收到了错误
ALTER TABLE语句与FOREIGN KEY约束“FK__Sub_Categ__Categ__5812160E”冲突。冲突发生在数据库“shaadikarbefikar_new”,表“shaadikarbefikar.Category_Master”,列“Category_ID”。
答案 0 :(得分:6)
嗯,错误清楚地告诉您Category_ID
表中的Sub_Category_Master
包含Category_Master
中{strong>不存在的一些值(Category_ID
列})。但这正是拥有外键约束的关键 - 确保您的子表(Sub_Category_Master
)仅使用其父表中的定义的值。
因此,在能够建立此外键关系之前,必须首先修复这些“voodoo”值。我也强烈建议强烈建议明确命名这个约束,以避免那些系统生成但不是非常有用的约束名称,如FK__Sub_Categ__Categ__5812160E
:
ALTER TABLE Sub_Category_Master
ADD CONSTRAINT FK_SubCategoryMaster_CategoryMaster
FOREIGN KEY (Category_ID) REFERENCES Category_Master(Category_ID)
答案 1 :(得分:1)
ALTER TABLE Sub_Category_Master
ADD CONSTRAINT FKSub_Category_Master_Category_ID FOREIGN KEY (Category_ID)
REFERENCES Category_Master(Category_ID);
答案 2 :(得分:-4)
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);