示例:表中有两个日期/时间字段,分别为delivery_date
和quote date
.delivery_date
的值(在日历的后面)应始终大于quote_date
.
这样的要求在表的模式中是否可以执行?也就是说,如果我try 在quote_date
之前添加一个带有delivery_date
的新行,它将拒绝更改.
示例:表中有两个日期/时间字段,分别为delivery_date
和quote date
.delivery_date
的值(在日历的后面)应始终大于quote_date
.
这样的要求在表的模式中是否可以执行?也就是说,如果我try 在quote_date
之前添加一个带有delivery_date
的新行,它将拒绝更改.
是的,你可以用CHECK constraint来表示,例如:
ALTER TABLE mytable ADD CHECK (delivery_date > quote_date);
假设delivery_date
和quote_date
被定义为MySQL DATE
类型或另一种时态类型(即非字符串).
判断约束要求MySQL 8.0.16或更高版本.如果必须在较旧版本的MySQL上实现此功能,则必须在INSERT和UPDATE之前编写触发器,如果更改没有通过预期的约束,则使用SIGNAL中止更改.