我已经使用mysql name people创建了表,该表有六个属性id,name,lastname,dob(存储在Date数据类型中),性别,城市,我希望在dob(出生日期)中输入该值大于18。我该如何设置这个约束,请帮忙
最佳答案
MySQL 不支持检查约束。因此,在 MySQL 中执行此操作的唯一方法是创建触发器或将插入包装在存储过程中。
您将使用的具体逻辑是:
dob <= curdate() - interval 18 year
因此,在几乎任何其他数据库中,这看起来都是这样的:
alter table t add constraint chk_t_dob check (dob <= curdate() - interval '18' year);
(注意:不同数据库的日期操作有所不同。)
关于mysql - 如何在 mysql 上添加检查年龄从出生日期字段计算的约束并验证年龄是否大于 18,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736144/