2012-04-30 3 views
80

에 외래 키 추가 . UserID을 내 ActiveDirectories 테이블에 참조하려고합니다. 이 오류가 나타납니다.SQL은 기존의 열

Foreign key 'UserID' references invalid column 'UserID' in referencing table 'Employees'.

+1

당신이 당신의 두 테이블의 스키마를 제공 할 수 ActiveDirectories 테이블에 ID에 대한 기본 키를 언급하지 않았다 생각? –

+0

이 링크 http://stackoverflow.com/questions/35196951/how-can-id-assign-foreign-key-mysqli/35197004#35197004 – iOS

답변

151

오류는 Employees 테이블에 UserID 열이 없음을 나타냅니다. 열을 먼저 추가 한 다음 명령문을 다시 실행하십시오.

ALTER TABLE Employees 
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID) 
    REFERENCES ActiveDirectories(id); 
+0

를 참조이 정확했다. 우리 DB가 추가 열을 업데이트하지 않았습니다. 이 문제가 해결되었지만 열이 설정되지 않은 것은 아닙니다. 여전히 제약 조건을 추가 할 수 없습니다. '외래 키 'FK__Employees__UserI__04E4BC85'에있는 참조 열 목록과 일치하는 참조 된 테이블 'ActiveDirectories'에 기본 키 또는 후보 키가 없습니다. – ExceptionLimeCat

+0

FK__Employees__UserI__4E4BC85에서 참조하는 열이 Active Directory의 PRIMARY KEY 또는 후보 키로 정의되지 않은 것 같습니다 표. – BluesRockAddict

+0

음,하지만 확실히 ActiveDirectories 테이블의 PK입니다. – ExceptionLimeCat

16

어쩌면 열이 거꾸로 있습니까?

ALTER TABLE Employees 
ADD FOREIGN KEY (UserID)   <-- this needs to be a column of the Employees table 
REFERENCES ActiveDirectories(id) <-- this needs to be a column of the ActiveDirectories table 

는 열이 Employees 테이블에 ID라고 것일하고 ActiveDirectories 테이블에 UserID 수 있을까요?

그런 다음 명령은 다음과 같아야합니다

ALTER TABLE Employees 
ADD FOREIGN KEY (ID)     <-- column in table "Employees" 
REFERENCES ActiveDirectories(UserID) <-- column in table "ActiveDirectories" 
+1

나는 그것의 이상한 그러나 불행히도 ActiveDirectory 테이블 id의 이름을 알아 – ExceptionLimeCat

2

MySQL의/SQL 서버/오라클/MS 액세스 :

ALTER TABLE Orders 
ADD FOREIGN KEY (P_Id) 
REFERENCES Persons(P_Id) 

은 FOREIGN KEY 제약 조건의 이름 및 FOREIGN KEY 제약 조건을 정의 할 수 있도록 여러 열에서 다음 SQL 구문을 사용하십시오.

MySQL/SQL Server/Oracle/MS 액세스 :

ActiveDirectories (ID)에 대한 올바른 외래 키 생성
ALTER TABLE Orders 
ADD CONSTRAINT fk_PerOrders 
FOREIGN KEY (P_Id) 
REFERENCES Persons(P_Id) 
0

방법, 내가 주 실수는 당신이

0
ALTER TABLE Faculty 
WITH CHECK ADD CONSTRAINT FKFacultyBook 
FOREIGN KEY FacId 
REFERENCES Book Book_Id 

ALTER TABLE Faculty 
WITH CHECK ADD CONSTRAINT FKFacultyStudent 
FOREIGN KEY FacId 
REFERENCES Student StuId 
+3

당신은 당신의 대답에 대한 몇 가지 설명을 제공해야합니다 – fen1x