是什么导致此SQL错误(ORA-02270)

时间:2016-01-29 02:43:07

标签: sql oracle foreign-keys alter-table

我试图将外键添加到在同一文档中创建的一系列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 ));

有什么可能出错的线索?

1 个答案:

答案 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 设置为 。首先将其设置为主键。