Может ли SQL выполнять вычисления при обновлении? - PullRequest
0 голосов
/ 08 октября 2011

Может ли 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 Ответ

1 голос
/ 08 октября 2011

Да - для достижения того, что вы описываете, вам нужно реализовать 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...