2012-03-14 57 views
0

我創建了一個列表product_idtotal_count的庫存表。當在採購表中輸入採購時(purchase_idsupplier_id,product_id,price, quantity),它應更新庫存表中的total_count。庫存表中total_count的默認值爲0.觸發器通過在另一個表中添加計數/數量來更新一個表中的Total_count列

例如,當進行採購(供應商,充電器,價格,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 ..... 

我停留在這一點上。我如何讓觸發器從購買表中獲取數量並更新總餘額?

回答

2
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可以執行INSERTPURCHASE表和UPDATEINVENTORY表,而不是將這種邏輯放在觸發器中,那麼將會好得多。

相關問題