2013-05-14 2 views
0

나는 "PeopleCategory"라는 테이블을 가지고 있고 그것은 내가 두 개의 레코드가 나는 테이블 "사람"이하고 PeopleID, PeopleCategoryID, NameMySQL : 외래 키가 필요합니까?

일부 레코드를 포함하는 다음

1, Customers 
2, Partners 

을 추가 한 PeopleCategoryID, Description

포함

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

관련 문제