mysql - 添加一个日期字段大于另一日期字段的要求

标签 mysql

示例:我的表中有 2 个日期/时间字段,delivery_datequote datedelivery_date 的值应始终大于 quote_date

这样的要求在表的架构中是否可以强制执行?也就是说,如果我尝试在 quote_date 之前添加一个带有 delivery_date 的新行,它将拒绝更改。

最佳答案

是的,您可以使用 CHECK constraint为此,例如:

ALTER TABLE mytable ADD CHECK (delivery_date > quote_date);

假设 delivery_datequote_date 被定义为 MySQL DATE 类型或其他时间类型(即不是字符串)。

CHECK 约束需要 MySQL 8.0.16 或更高版本。如果必须在旧版本的 MySQL 上实现此功能,则必须在 INSERT 和 UPDATE 之前编写触发器,并使用 SIGNAL如果未通过您预期的约束,则中止更改。

关于mysql - 添加一个日期字段大于另一日期字段的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71700186/

相关文章:

mysql - Asp NET Membership with MySql。扩展 my_aspnet_applications 表

mysql - MySQL 中何时使用单引号、双引号和反引号

java - 多个数据库的 Hibernate 自动递增字段

php - 如何循环查找表中的每个值并查找平均值

当在 where 子句中使用 sleep() 时,MySql 查询花费的时间太长

mysql - SQL 中的 if 语句和

mysql - 无法设置 Angular (6) + MySQL + NodeJS + Express

mysql - RMySQL dbWriteTable 与 field.types

mysql - 如何使用外键从两个表中获取所有数据

mysql - NodeJS MySQL 异步调用阻止进程退出