2016-01-29 35 views
0

我试图将外键添加到在同一文档中创建的一系列SQL表。是什么导致此SQL错误(ORA-02270)

其他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

ALTER TABLE出现在完整文档中的CREATE TABLE ROOMS之后,只是按照该顺序粘贴它。 – Spork

回答

1

问题在于这里是这些行。


CREATE TABLE客房
(RoomID NUMBER(5)NOT NULL,
费率号码(7,2)NOT NULL,
约束RateCK
CHECK(速率在25.00和99.00),
约束RoomIDCK2
CHECK(RoomID BETWEEN 2000和29000));

ALTER TABLE预订
添加外键(RoomID)
参考室(RoomID);

您没有设置RoomID客房表作为。首先将其设置为主键。

+0

啊该死的,我在那里但是用CHECKs覆盖了它。谢谢! – Spork

相关问题