触发从单位和价格计算总成本

时间:2012-11-04 02:07:03

标签: mysql phpmyadmin

我很享受MySQL所能做的一切。我想学习如何使用MySQL触发器来更新MySQL列的总成本,其中UNITS * PRICE(当然)将等于总成本。

发票表包括( 价钱, 单位, 总费用)

    CREATE TRIGGER TRG_TOTAL_COST 
    AFTER INSERT ON INVOICE
    FOR EACH ROW 
    BEGIN 
    --1) Get the TOTAL
    SELECT TOTAL_COST from INVOICE
    --2) Compute total
    TOTAL_COST= UNITS * 
    PRICE; 
    END;

1 个答案:

答案 0 :(得分:0)

虽然我不确定这是非常好的数据库设计,但您可以通过

轻松完成此任务
CREATE TRIGGER TRG_TOTAL_COST BEFORE INSERT ON INVOICE FOR EACH ROW
SET NEW.TOTAL_COST = NEW.UNITS * NEW.PRICE

但我不明白你为什么要在触发器中这样做?您拥有插入时所需的所有数据,因此您可以直接在插入中执行产品。

或者,除非您有充分的理由想要存储它,为什么不省略可能多余的列并在您的选择中计算产品?