栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在条件成立时,可以使用SQL约束来防止更改特定值吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在条件成立时,可以使用SQL约束来防止更改特定值吗?

简短的答案:不,当Finalized为’true’时,SQL约束本身不能阻止对列Grade的更改(但允许其他更改)。

有几种SQL约束:CHECK,DEFAULT,NOT
NULL,UNIQUE,主键和外键。

这些中的每一个都可以单独或组合限制或影响列的值,但不能阻止对允许值的UPDATE。特别是,这些约束都不能阻止基于“等级”和“完成”的先前值对“等级”和/或“完成”进行更新。

UPDATE触发器可以做到这一点:比较Grade的新值和旧值,如果这些值不同且Finalized =’true’,则使用说明性错误消息回滚UPDATE。

但是,应用程序可以并且应该更优雅地实施这种“业务规则”。规则本身可以对何时可以更改Finalized值进行一些说明。例如,是否可以同时更改成绩并设置Finalized
=’false’?触发逻辑可以处理此类详细信息,因此将其安装为故障保护是合理的,同时还要在应用程序的某个位置(前端/中间件/后端)明确显示规则。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号