CREATE TABLE Hotel
(roomNum INTEGER NOT NULL,
arrD DATE NOT NULL,
depD DATE NOT NULL,
guestName CHAR(30) NOT NULL,
PRIMARY KEY (roomNum, arrDate));
如何修改定义以进行检查,以便在之前分配的出发日期之前没有预订任何房间。
答案 0 :(得分:0)
您可以使用INSERT
条款执行NOT EXISTS
来检查日期的有效性:
INSERT INTO Hotel (roomNum, arrD, depD, guestName)
SELECT 1, '2017-02-08', '2017-02-11', 'Tim Biegeleisen'
FROM dual
WHERE NOT EXISTS (SELECT * FROM Hotel WHERE roomNum = 1 AND depD > '2017-02-08')
我不认为修改表格定义可以强制执行你的逻辑。