I am creating a database that is for booking hotel rooms. I am stuck on a constraint that checks if a 'dateFrom' variable for a guest is between any 'dateFrom' and 'dateTo' variables for that specific guest. ie) a guest cannot book more than 1 room at a time.
I am getting an error: "cannot use subquery in check constraint":
CREATE TABLE tomsBooking
(
hotelNo HotelNo NOT NULL,
guestNo INT NOT NULL,
dateFrom DATE NOT NULL,
dateTo DATE NOT NULL,
roomNo RoomNumber
CONSTRAINT GuestOverlap
CHECK ( NOT EXISTS
(SELECT * FROM tomsBooking b
WHERE b.guestNo = b.guestNo
AND b.dateTo >= dateFrom
AND b.dateFrom <= dateTo
)
)
);