我有一个名为“PeopleCategory”的表,它包括
PeopleCategoryID, Description
我添加了两条记录
1, Customers
2, Partners
然后我有一个表“人物”,它包括PeopleID, PeopleCategoryID, Name
一些记录:
1, 1, George
2, 1, John
3, 2, Nick
PeopleCategoryID告诉我们定义了哪种人。
我需要外键吗?我试过这段代码:
ALTER TABLE PeopleCategories
ADD CONSTRAINT FK_test
FOREIGN KEY (PeopleCategoryID) REFERENCES People(PeopleCategoryID)
ON UPDATE CASCADE
ON DELETE CASCADE;
但它因错误150而失败。
有什么想法吗?
答案 0 :(得分:1)
如果要添加外键,则应该反方向:
ALTER TABLE People
ADD CONSTRAINT FK_test
FOREIGN KEY (PeopleCategoryID) REFERENCES PeopleCategory(PeopleCategoryID)
ON UPDATE CASCADE
ON DELETE CASCADE;
这样,人们依赖于某个类别,如果没有相应的People
,您就无法向Category
添加内容。
您可能收到该错误,因为该列不是People
表中的主键。