sql - SQL数据库中输入小于0时如何回滚?
问题描述
我正在建立一个数据库来跟踪库存,但我想避免卖出超过库存。
我正在使用Postgresql,我想知道是否可以使用IF条件来检查UPDATE是否会导致负数,如果是负数,那么ROLLBACK?
我看过 IF 的文档,但不确定它是否可以与 ROLLBACK 结合使用。或者有没有更好的方法来做到这一点?
解决方案
您只需使用一个check
约束:
alter table t add constraint chk_t_col check (col >= 0);
这将防止任何update
或会在列中insert
生成值。NULL
推荐阅读
- node.js - 如何在角度 10 中调用 api
- ag-grid - ag-grid 将 cellRendererParams 设置为行数据中的值
- r - 根据计算有条件地重新标记行
- asp.net - 通过 Excel/Word 中的超链接打开的选项卡无法识别会话 cookie
- ios - 在 Swift 中调用的第一个函数?
- python-3.x - 无法附加到数组元素
- tensorflow - 使用 Tensorflow v2.3.0 的“计算能力”“cuda 架构”的区别说明
- angular - Angular:材料表转换材料表的API数组
- wagtail - 如何在 Wagtail 中为多个页面类创建标签字段?
- php - 未找到 Laravel 8 类“Laravel\Fortify\Actions\Auth”