防止postgresql中的值小于零

时间:2014-02-01 21:04:53

标签: sql postgresql

我想知道在postgresql中是否可以防止在表格中输入小于零的值。

在我的例子中,我有一个库存表,每次购买一个商品时,库存都会被一个使用java应用程序的库使用,但是一旦它变为零,我希望它不允许输入值。

我知道我可以在我已经制作的java应用程序中执行此操作,但是它可以在postgres表本身中,所以当任何负数输入零以下时它不接受该值吗?

我想要一个方法,我可以改变表来添加约束,因为我已经创建了一个名为stock_availability的表和一个stock_quantity列,我想要应用它的约束不小于零,我我宁愿不删除这个表并重新创建它

1 个答案:

答案 0 :(得分:16)

使用检查约束:

create table stock_availability
(
   stock_quantity integer not null,
   constraint stock_nonnegative check (stock_quantity >= 0)
);

要将其添加到现有表格,请使用ALTER TABLE

alter table stock_availability
   add constraint stock_nonnegative check (stock_quantity >= 0);