SQL可以在更新时执行计算吗?例如,存储的产品数量 5 ,在售出后,说 3 项,我想更新product tables
中剩余的数量,
$sql_update = "
UPDATE store_products
SET
product_quantity = ?
WHERE store_products.product_id = ?
";
$result = $connection->run_query($sql_update,array(
3,
$product->product_id
));
有可能吗?
答案 0 :(得分:1)
是 - 要实现您所描述的,您需要实施AFTER UPDATE
触发器。
有关详细信息和样本,请参阅:
编辑 - 根据评论样本:
CREATE TRIGGER produpd AFTER UPDATE ON store_products
FOR EACH ROW BEGIN
UPDATE product SET quantity = quantity - NEW.product_quantity WHERE product_id = NEW.product_id;
END;
需要在MySQL数据库中创建此触发器...当您从问题中执行SQL代码时,MySQL会调用此触发器并更新products
表。