0

我有一个名为“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。

有任何想法吗?

4

1 回答 1

1

如果要添加外键,它应该是相反的方向:

ALTER TABLE People
  ADD CONSTRAINT FK_test
  FOREIGN KEY (PeopleCategoryID) REFERENCES PeopleCategory(PeopleCategoryID)
  ON UPDATE CASCADE
  ON DELETE CASCADE;

这样,人们依赖于一个类别,如果People没有相应的Category.

您可能会收到该错误,因为该列不是People表中的主键。

于 2013-05-14T18:04:51.477 回答