示例:我的表中有 2 个日期/时间字段,delivery_date
和 quote date
。 delivery_date
的值应始终大于 quote_date
。
这样的要求在表的架构中是否可以强制执行?也就是说,如果我尝试在 quote_date
之前添加一个带有 delivery_date
的新行,它将拒绝更改。
最佳答案
是的,您可以使用 CHECK constraint为此,例如:
ALTER TABLE mytable ADD CHECK (delivery_date > quote_date);
假设 delivery_date
和 quote_date
被定义为 MySQL DATE
类型或其他时间类型(即不是字符串)。
CHECK 约束需要 MySQL 8.0.16 或更高版本。如果必须在旧版本的 MySQL 上实现此功能,则必须在 INSERT 和 UPDATE 之前编写触发器,并使用 SIGNAL如果未通过您预期的约束,则中止更改。
关于mysql - 添加一个日期字段大于另一日期字段的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71700186/