从MySQL数据库中减去数量而不得到负数
本文关键字:数据库 MySQL | 更新日期: 2023-09-27 18:18:01
我正在编写一个c#应用程序,每次出版一本特定的书时,数据库中的数量减少1。这个数量一直在减,直到最后得到一个负值作为书的数量。
我想知道如何减去书的数量而不达到负值。
代码如下:
connect = new SqlConnection(conStr.connectString);
connect.Open();
string updateString = "update tblbooks set quantity=quantity - 1 where book_id=@book_id";
cmd = new SqlCommand(updateString, connect);
只使用case
或greatest()
:
update tblbooks
set quantity = greatest(quantity - 1, 0)
where book_id = @book_id;
或者,更好的是,在where
中使用一个条件:
update tblbooks
set quantity = quantity - 1
where book_id = @book_id and quantity >= 1;
使用where类来确保您只更新那些具有quantity > 0
的记录
update tblbooks
set quantity=quantity - 1
where quantity>0 and book_id=@book_id