2013-05-14 88 views
0

我有一個名爲「PeopleCategory」表,它包括 PeopleCategoryID, DescriptionMySQL:我需要一個外鍵嗎?

我有兩條記錄添加

1, Customers 
2, Partners 

然後我有一個表「人」,它包括PeopleID, PeopleCategoryID, Name

一些記錄:

1, 1, George 
2, 1, John 
3, 2, Nick 

PeopleCategoryID告訴我們什麼樣的pe ople被定義。

我需要外鍵嗎?我想這樣的代碼:

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

但它失敗,錯誤150

任何想法?

回答

1

如果你要添加一個外鍵,它應該是在相反的方向:

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

這樣一來,人們依賴於一個類別,以People沒有相應的可以不加東西Category

您可能會遇到該錯誤,因爲該列不是People表中的主鍵。

+0

的確如此。相反的方向添加工程。謝謝! – user1493428 2013-05-14 18:29:32