2013-04-10 3 views
1

테이블을 6 개 만들었습니다. 처음 세 개의 테이블을 만들 때 모든 것이 잘 작동합니다. 그러나 다른 테이블을 만들 때 이전에 사용한 외래 키를 사용해야 할 때 시스템에서 오류가 발생합니다. 오류 : 제약 조건을 만들 수 없습니다. SQL Server 2008

은 3 개 첫 번째 테이블은 다음과 같습니다

TABLE 직원 CREATE ( 위치 TEXT NULL NOT 이름 TEXT NULL NOT 직원 ID INTEGER PRIMARY KEY NOT NULL,,, 급여 REAL NOT NULL을, 비고 TEXT ) ;

TABLE 지구를 CREATE ( PlanetID INTEGER PRIMARY KEY NOT NULL이 이름 TEXT NULL NOT, 가 REAL NULL NOT 좌표 ); 표 Has_Clearance을 만들

이 ( 직원 INTEGER NULL NOT CONSTRAINT fk_Employee_EmployeeID 직원 (직원 ID)를 참고 문헌 행성 INTEGER NOT NULL CONSTRAINT fk_Planet_PlanetID이 수준 INTEGER NULL NOT 플래닛 (PlanetID)를 참조 PRIMARY KEY (직원, 행성) );

은 그 때 나는 4 테이블을 만들 :

표 선적 ( ShipmentID INTEGER PRIMARY KEY NOT NULL, 날짜 TEXT, 관리자 INTEGER NULL NOT CONSTRAINT fk_Employee_EmployeeID 직원 (직원 ID를 참조), 행성 INTEGER NOT NULL을 CREATE CONSTRAINT fk_Planet_PlanetID 참고 자료 Planet (PlanetID) );

다음 오류가 발생합니다. "데이터베이스에 'fk_Employee_EmployeeID'라는 개체가 이미 있습니다. 제약을 만들 수 없습니다."

이 네 번째 표에서 FK를 만드는 방법을 알려주세요.

답변

2

제약 조건 "fk_Employee_EmployeeID"가 "Has_Clearance"테이블에 먼저 생성 된 다음 동일한 이름의 다른 제약 조건을 만들려고합니다. 허용되지 않습니다. 4 번째 테이블에서 제약 조건의 이름을 다음과 같이 바꿉니다.

CREATE TABLE Shipment ( 
ShipmentID INTEGER PRIMARY KEY NOT NULL, 
Date TEXT, 
Manager INTEGER NOT NULL CONSTRAINT fk_Maneger_EmployeeID REFERENCES Employee(EmployeeID), 
Planet INTEGER NOT NULL CONSTRAINT fk_Planet_PlanetID REFERENCES Planet(PlanetID) 
); 
관련 문제