首页 > 解决方案 > SQL数据库中输入小于0时如何回滚?

问题描述

我正在建立一个数据库来跟踪库存,但我想避免卖出超过库存。

我正在使用Postgresql,我想知道是否可以使用IF条件来检查UPDATE是否会导致负数,如果是负数,那么ROLLBACK?

我看过 IF 的文档,但不确定它是否可以与 ROLLBACK 结合使用。或者有没有更好的方法来做到这一点?

标签: sqlpostgresql

解决方案


您只需使用一个check约束:

alter table t add constraint chk_t_col check (col >= 0);

这将防止任何update或会在列中insert生成值。NULL


推荐阅读