希望有一个简单的 SQL 问题,用于根据另一列的值强制执行一列的不变性

发布于 2024-10-10 05:02:12 字数 223 浏览 3 评论 0原文

我有一个带有“值”列和“状态”列的表。

执行以下内容的最简单且最有效的方法是什么?这个想法是,将货币值输入数据库,然后有人说“最终”,之后我需要保证不会发生任何变化,因为计费过程开始了。

  1. 新行的 Status='New'(即失败)
  2. 仅当 Status='New' 时才可以更新值
  3. 状态可以更改为“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.

  1. New rows have Status='New' (i.e. fails otherwise)
  2. Value can only be updated when Status='New'
  3. Status can be changed to 'Final' exactly one time, and after that the whole row is effectively read only.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

屋檐 2024-10-17 05:02:12

触发器是执行此操作的最佳方式。

A trigger is the best way to enforce this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文