我想知道在postgresql中是否可以防止在表格中输入小于零的值。
在我的例子中,我有一个库存表,每次购买一个商品时,库存都会被一个使用java应用程序的库使用,但是一旦它变为零,我希望它不允许输入值。
我知道我可以在我已经制作的java应用程序中执行此操作,但是它可以在postgres表本身中,所以当任何负数输入零以下时它不接受该值吗?
我想要一个方法,我可以改变表来添加约束,因为我已经创建了一个名为stock_availability的表和一个stock_quantity列,我想要应用它的约束不小于零,我我宁愿不删除这个表并重新创建它
答案 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);