триггер для обновления столбца Total_count в одной таблице путем добавления количества / количества в другой таблице - PullRequest
0 голосов
/ 14 марта 2012

Я создал инвентарную таблицу со столбцами product_id и total_count.Когда покупка вносится в таблицу покупок (purchase_id, supplier_id, product_id, price, quantity), она должна обновить total_count в таблице инвентаря.Значение по умолчанию для total_count в таблице инвентаря равно 0.

, например, когда совершается покупка (поставщик, зарядное устройство, цена, 25), необходимо обновить инвентарь (зарядное устройство, 25).

Я не могу этого сделать.вот мой код:

create or replace trigger trg_update_inventory 
after insert on supplier_product 
for each row 
begin
    update inventory set total_count=total_count+ quantity where .....

Я застрял в этой точке.как заставить триггер получить количество из таблицы покупок и обновить итоговый баланс?

1 Ответ

2 голосов
/ 14 марта 2012
CREATE OR REPLACE TRIGGER trg_update_inventory
  AFTER INSERT ON supplier_product
  FOR EACH ROW
BEGIN
  UPDATE inventory
     SET total_count = total_count + :new.quantity
   WHERE product_id  = :new.product_id
END;

должно работать.Однако, с точки зрения архитектуры системы, было бы гораздо лучше иметь хранимую процедуру make_purchase, которая переводит INSERT в таблицу PURCHASE и таблицу UPDATE в INVENTORY, а не помещает этот типлогики в триггере.

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