首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性-属性依赖

属性-属性依赖
EN

Database Administration用户
提问于 2015-04-05 07:24:48
回答 1查看 45关注 0票数 2

因此,作为我们大学项目的一部分,我正在研究人口普查数据库。我偶然发现一个问题,如果一个人不满18岁,他/她的婚姻状况应该只允许'NA‘,任何超过18岁的人都应该被允许从以下任何一个价值观中选择(“已婚”、“丧偶”、“单身”等等)。关于约束的信息似乎没有帮助。没有找到任何方法来实现这种约束机制,请建议。

EN

回答 1

Database Administration用户

发布于 2015-04-05 10:55:02

MySQL不允许定义这些类型的约束,唯一允许的约束是那些与索引相关的约束,例如唯一的或外键,或者无效的数据类型。CHECK不支持。

有几种选择,取决于您想要实现什么。

  • 首先,显然可以选择只执行应用程序检查。
  • 服务器端推荐的方法是从编辑信息的用户撤销对表的插入和更新访问,并强制使用两个存储过程在实际插入数据之前检查数据,以便用户必须使用CALL insert_my_table(colums, of, my, table)
  • 您还可以执行一些"hacks“操作,比如使用as /UPDATE触发器,这将迫使事务在检测到”错误“值时失败,就像在前面的链接中建议的那样。这是更容易实现,但更丑陋一点。
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/97057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档