Mysql 如何检查以修改定义

Mysql 如何检查以修改定义,mysql,sql,Mysql,Sql,如何修改定义以保持检查,以便在上次分配的出发日期之前没有预订房间。您可以使用不存在子句执行插入,以检查日期的有效性: CREATE TABLE Hotel (roomNum INTEGER NOT NULL, arrD DATE NOT NULL, depD DATE NOT NULL, guestName CHAR(30) NOT NULL, PRIMARY KEY (roomNum, arrDate)); 我不认为修改表定义可以强制执行您的逻辑。您可以使用NOT EXISTS子句执行INS

如何修改定义以保持检查,以便在上次分配的出发日期之前没有预订房间。

您可以使用
不存在
子句执行
插入
,以检查日期的有效性:

CREATE TABLE Hotel
(roomNum INTEGER NOT NULL,
arrD DATE NOT NULL,
depD DATE NOT NULL,
guestName CHAR(30) NOT NULL,
PRIMARY KEY (roomNum, arrDate));

我不认为修改表定义可以强制执行您的逻辑。

您可以使用
NOT EXISTS
子句执行
INSERT
,以检查日期的有效性:

CREATE TABLE Hotel
(roomNum INTEGER NOT NULL,
arrD DATE NOT NULL,
depD DATE NOT NULL,
guestName CHAR(30) NOT NULL,
PRIMARY KEY (roomNum, arrDate));

我不认为修改表定义可以强制执行您的逻辑。

因为mysql不支持检查约束,所以您无法通过更改表定义来实现预期的行为。您可以改为使用触发器。由于mysql不支持check约束,您无法通过更改表定义来实现预期的行为。您可以使用触发器。我们是否可以重新设计或在表中添加一些字段用于该检查?检查@shadow的注释。。。MySQL不支持这样的约束。如果到达日期早于任何出发日期,我给出的答案将不会导致插入。我们是否可以重新设计或在表中添加一些字段以进行检查??通过@shadow检查注释。。。MySQL不支持这样的约束。如果到达日期早于任何出发日期,我给出的答案将导致不发生插入。