我在MARIADB终端工作。我有一个任务,写查询,扣除产品的数量由5,在它更新之前,它需要检查,我们有足够的数量。如果数量低于0,那么我们不想更新,相反,我们想抛出一个错误。
这不是一个pl/sql或过程。只是一个我们可以直接在terminal/mysqlshell上执行的查询
到目前为止编写的查询:
Update inventory
SET
quantity_in_stock =
IF(((SELECT quantity_in_stock from inventory WHERE product_id = 101)-5) >= 0,
((SELECT quantity_in_stock from inventory where product_id =101)-5),
()
where product_id = 101;
我想在()部分(查询的最后一行)引发ERROR。
SQL-MARIADB语句在更新查询的()部分引发/生成错误。
1条答案
按热度按时间bvuwiixz1#
如果可能的话,数据完整性遵从性应该在服务器端完成,而不是由应用程序完成。
例如,为了防止订购库存量不足的特定物品,必须确保库存量不能为负。这需要在表的定义中指定。
如果将quantities_in_stock定义为无符号整数,则它不能<0。
范例:
如果不能修改表定义,则可以创建触发器。确保数据完整性的另一个选项是检查约束。