mysql - 如何在 mysql 上添加检查年龄从出生日期字段计算的约束并验证年龄是否大于 18

标签 mysql sql

我已经使用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/

相关文章:

sql - 优化多列 LIKE SQL 查询的一些最佳实践是什么?

python - 查找两个日期之间的日期范围并重复列

mysql - 常用的 MySQL 管理/查询工具都不支持超长的表和列注释吗?

php - SQL - 过滤搜索结果

java - jdbc 返回 1,表示没有更新 executeBatch() 中的记录

mysql - 将数据从 My Sql 导入到 Sql Server 的最简单方法

php - 获取帖子列表的最新 3 条评论

python - 查询集 : LEFT JOIN with AND

c# - 如何编写这样的查询 SELECT * FROM TABLE WHERE COLUMN LIKE '%"BLABLA":[ %"BLABLA1"%]%' using Entity Framework

sql - 如何在sql server 2008中使用子查询?