mysql - 不使用TRIGGER约束MySQL限制年龄
问题描述
要求:医生年龄应在 24 岁以上
环境:MySQL 5.6
有人说:“你不需要触发器。解决方案很简单”
尝试的选项:CHECK 不适用于此版本的 MySQL。此外,我不能将 Curdate() 之类的函数用于 CHECK 约束。我最终使用了触发器并且它有效。但我想知道简单的解决方案是什么
我现在拥有的是一个触发器:
BEGIN
IF NEW.DateofBirth > date_add(CURDATE(),interval -24 year)
then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Should be over 24 years old';
END IF;
END
到目前为止,我使用了 DateOfBirth,因为 Age 列在现实生活中没有意义。在谷歌搜索生成的列、枚举等后,我迷路了。
解决方案
推荐阅读
- swift - 无法理解 withUnsafeBytes 方法的工作原理
- react-native - 如何构建 ExpoKit APK
- configuration - Wildfly 没有上传大文件
- amazon-web-services - 如何为 AWS 实践实验室开发 Web 应用程序?
- reactjs - 正在寻找一个账单扫描 OCR 工具,我可以将它构建到 React Native App 中,用于学术项目。有什么建议么?
- microsoft-cognitive - QnA Maker 服务未显示在“我的知识库”中
- python - 由于数据库输入错误,切换到特定类别的列
- python - 如何在Django中动态调用模板中的视图函数
- node.js - 在 express.js 中使用 .unless 来避免对几个路由进行 jsonwebtoken 验证
- jquery - 使用asp.net通用(testUpload.ashx Page)处理程序上传图像在jquery ajax调用中引发跨域访问错误