希望有一个简单的 SQL 问题,用于根据另一列的值强制执行一列的不变性
我有一个带有“值”列和“状态”列的表。
执行以下内容的最简单且最有效的方法是什么?这个想法是,将货币值输入数据库,然后有人说“最终”,之后我需要保证不会发生任何变化,因为计费过程开始了。
- 新行的 Status='New'(即失败)
- 仅当 Status='New' 时才可以更新值
- 状态可以更改为“Final”一次,之后整行实际上是只读的。
I have a table with a Value column and a Status column.
What is the simplest and most effective way to enforce the following? The idea is that money values are entered into the database and then someone says "Final" and after that I need to guarantee no changes because a billing process begins.
- New rows have Status='New' (i.e. fails otherwise)
- Value can only be updated when Status='New'
- Status can be changed to 'Final' exactly one time, and after that the whole row is effectively read only.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
触发器是执行此操作的最佳方式。
A trigger is the best way to enforce this.