SQL可以在更新时执行计算吗?

时间:2011-10-08 16:31:50

标签: php mysql sql pdo

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
));

有可能吗?

1 个答案:

答案 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表。