我试图将外键添加到在同一文档中创建的一系列SQL表中。
其他ALTER TABLE查询工作正常,但有一个给我带来麻烦。相关代码如下
CREATE TABLE Bookings
(BookingID NUMBER(15) NOT NULL,
Arrive DATE NOT NULL,
BookingDate DATE,
Comments VARCHAR2(200),
Depart DATE,
PaymentDueDate DATE,
ClientID NUMBER(10),
RoomID NUMBER(5),
CONSTRAINT BookingIDPK
PRIMARY KEY (BookingID),
CONSTRAINT RoomIDCK
CHECK (RoomID BETWEEN 2000 AND 29000 ));
----
ALTER TABLE Bookings
ADD FOREIGN KEY (RoomID)
REFERENCES Rooms(RoomID);
----
CREATE TABLE Rooms
(RoomID NUMBER(5) NOT NULL,
Rate NUMBER(7,2) NOT NULL,
CONSTRAINT RateCK
CHECK (Rate BETWEEN 25.00 AND 99.00 ),
CONSTRAINT RoomIDCK2
CHECK (RoomID BETWEEN 2000 AND 29000 ));
有什么可能出错的线索?
答案 0 :(得分:1)
这个问题就在这里。
CREATE TABLE Rooms
(RoomID NUMBER(5)NOT NULL,
费率NUMBER(7,2)NOT NULL,
约束率RateCK
检查(25.00和99.00之间的价格),
约束RoomIDCK2
检查(2000和29000之间的房间ID));
ALTER TABLE预订
添加外键(RoomID)
参考房间(RoomID);
您尚未在会议室表中将 RoomID 设置为 。首先将其设置为主键。