gpt4 book ai didi

SQL 引用表中没有主键或候选键

转载 作者:行者123 更新时间:2023-12-04 05:26:56 25 4
gpt4 key购买 nike

这是我编写 SQLSever 表达式时的问题:

There are no primary or candidate keys in the referenced table 'Room'
that match the referencing column list in the foreign key 'FK_Booking_RoomNo__4E298478'.



以及我的程序的一些快照:
CREATE TABLE Booking(
HotelNo NVARCHAR(4) not null,
GuestNo SMALLINT,
DateFrom DATETIME not null,
DateTo DATETIME,
RoomNo SMALLINT not null,

PRIMARY KEY (HotelNo,DateFrom,RoomNo),
FOREIGN KEY (HotelNo) REFERENCES Hotel(HotelNo),
FOREIGN KEY (GuestNo) REFERENCES Guest(GuestNo),
FOREIGN KEY (RoomNo) REFERENCES Room(RoomNo)); <---trouble on this line

CREATE TABLE Room(
RoomNo SMALLINT not null,
HotelNo NVARCHAR(4) not null,
RoomType NVARCHAR(25),
Price DECIMAL(5,2),

PRIMARY KEY (RoomNo,HotelNo),
CONSTRAINT fk_Room FOREIGN KEY (HotelNo) REFERENCES Hotel(HotelNo));

这是酒店的 table
CREATE TABLE Hotel(
HotelNo NVARCHAR(4) not null,
HotelName NVARCHAR(25),
City NVARCHAR(25),

PRIMARY KEY (HotelNo) );

我试图对这个问题进行一些搜索,它说这可能是因为表Room中没有定义主键导致的,但是如上,它是定义的。

有人可以帮我解决这个问题吗?

提前谢谢你。

最佳答案

对复合键的任何引用也必须包括这两列。

FOREIGN KEY (RoomNo, HotelNo) REFERENCES Room(RoomNo, HotelNo))

关于SQL 引用表中没有主键或候选键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com