2015-11-08 51 views
-1

有人能告诉我为什么我得到这个错误吗?谢谢!SQL缺少右括号ORA-00907

CREATE TABLE Booking (
    hotelNo char(2) NOT NULL, 
    guestNo char(2) NOT NULL, 
    dateFrom date  NOT NULL, 
    dateTo date  
    roomNo char(2) NOT NULL, 
    CONSTRAINT booking_pk PRIMARY KEY (hotelNo, guestNo, dateFrom), 
    CONSTRAINT booking_hotel_fk FOREIGN KEY (hotelNo) REFERENCES 
    CONSTRAINT booking_guest_fk FOREIGN KEY (guestNo) REFERENCES Guest(guestNo), 
    CONSTRAINT booking_room_fk FOREIGN KEY (hotelNo, roomNo) 
    REFERENCES Room(hotelNo, roomNo) 
); 

回答

2

您至少有两个错误。在date之后缺少逗号。但是你也没有完成外键引用。所以,这样的事情:

CREATE TABLE Booking (
    hotelNo char(2) NOT NULL, 
    guestNo char(2) NOT NULL, 
    dateFrom date  NOT NULL, 
    dateTo date, 
    -----------^ 
    roomNo char(2) NOT NULL, 
    CONSTRAINT booking_pk PRIMARY KEY (hotelNo, guestNo, dateFrom), 
    CONSTRAINT booking_hotel_fk FOREIGN KEY (hotelNo) REFERENCES hotel(hotelNo), 
    -------------------------------------------------------------^ 
    CONSTRAINT booking_guest_fk FOREIGN KEY (guestNo) REFERENCES Guest(guestNo), 
    CONSTRAINT booking_room_fk FOREIGN KEY (hotelNo, roomNo) REFERENCES Room(hotelNo, roomNo) 
); 
+0

我错过了'酒店(hotelNo)':P –

+0

谢谢您的答复。我会尽快尝试,SQLFiddle现在刚刚下线:-( – Starbucks

+0

它工作,谢谢。 – Starbucks