【发布时间】:2020-04-16 11:01:38
【问题描述】:
我正在开发一个使用 JDBC 更新库存和下订单的应用程序。
我正在存储产品,如果请求的数量少于存储的数量,我想更新产品,如果数量等于数据库中当前库存的数量,我想从数据库中删除产品.
我使用了两种不同的语句,但我只想使用其中一种。例如,如果我想将订单添加到数据库中,系统将请求的内容是名称和产品数量。产品数量将从数据库中产品的总数量中减去。伪代码是
IF product quantity - user quantity =0 THEN DELETE product FROM database
ELSE UPDATE product quantity TO product quantity-user quantity ON THE database
product quantity=quantity of the product in the database
user quantity=quantity requested by the user
我现在拥有的Prepared Statements是这两个
UPDATE products SET quantity=quantity-? WHERE product_name=?
DELETE FROM products WHERE product_name=?
如果可能,我想将它们合并为一个
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
您不能在同一个语句中执行删除和更新。从您的 Java 代码控制此流程有什么问题?
-
您有两种完全不同的行为(是否删除行)。这不会很漂亮或易于维护。查看数据库的 SQL 方言,了解如何执行条件。你也许可以。否则查看存储过程。
-
为什么要删除产品?
-
@Strawberry 因为如果产品不再可用,所以无法订购,如果产品数量少于一定数量,其他选择是使用条件