下面是我需要放置約束的模式,以便可以爲房間號插入第二個新條目,甚至在同一房間號的現有depDt之前。你能幫助我嗎?防止重疊日期範圍的表級約束
CREATE TABLE Accomodation (
roomNo INTEGER NOT NULL,
arrDt DATE NOT NULL,
depDt DATE NOT NULL,
PRIMARY KEY (roomNo, arrDt),
CONSTRAINT date_chk CHECK (arrDt < depDt)
);
INSERT INTO HotelStays(roomNo, arrDt, depDt) VALUES
(123, to_date('20160202', 'YYYYMMDD'),to_date('20160206','YYYYMMDD')),
(123, to_date('20160205', 'YYYYMMDD'), to_date('20160208','YYYYMMDD'));
我試過在CONSTRAINTS的WHERE下給出一個子查詢,但它不在SQL小提琴中工作。
你在'INSERT'語句的第二個元素末尾缺少')'。 –
對不起,但這是一個錯字。 – Shashikiran
從我看到的第二個條目中輸入相同的房間號碼__可以插入,只要他們的抵達日期不同。你真正的問題是什麼?您能否顯示預期的輸出和錯誤或您收到的輸出? –