2017-12-13 14 views
0

それは私は私のテーブルに外部キーを設定することはできません

を示し。

create table Itinerary(
    ItineraryId int primary key identity, 
    Description varchar(1000), 
    TourId varchar(5) 
    FOREIGN KEY (TourId) REFERENCES Tour(TourId) 
); 

create table DatesInfo(
    Dates date NOT NULL, 
    ItineraryId int NOT NULL, 
    PlaceOfBreakfirst varchar(100) NOT NULL, 
    PlaceOfLunch varchar(100) NOT NULL, 
    PlaceOfDinner varchar(100) NOT NULL, 
    PlaceOfAccommodation varchar(100) NOT NULL, 
    Route varchar(1000) NOT NULL, 
    ScheduleId int NOT NULL, 
    PRIMARY KEY(Dates,ItineraryId), 
    FOREIGN KEY (ScheduleId) REFERENCES Schedule(ScheduleId) 
); 

create table SpecialActivity(
    Activity varchar(100), 
    ItineraryId int NOT NULL, 
    Dates date NOT NULL, 
    PRIMARY KEY(Activity,ItineraryId,Dates),  
    FOREIGN KEY (ItineraryId) REFERENCES DatesInfo(ItineraryId), 
    FOREIGN KEY (Dates) REFERENCES DatesInfo(Dates)   
); 

答えて

0

は、次の2つの別々の外部キーを作成しようとしている:

FOREIGN KEY (ItineraryId) REFERENCES DatesInfo(ItineraryId), 
FOREIGN KEY (Dates) REFERENCES DatesInfo(Dates) 

をしかし、参照先の表では、(コンポジット)主キーがあります。

PRIMARY KEY(Dates,ItineraryId), 

外国人をキーは、ターゲット表の主キーと一致する必要があります。したがって、複合外部キーが必要です。

FOREIGN KEY (Dates,ItineraryId) REFERENCES DatesInfo(Dates,ItineraryId), 
+0

ありがとうございます! – rajitha

関連する問題