我很享受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;
答案 0 :(得分:0)
虽然我不确定这是非常好的数据库设计,但您可以通过
轻松完成此任务CREATE TRIGGER TRG_TOTAL_COST BEFORE INSERT ON INVOICE FOR EACH ROW
SET NEW.TOTAL_COST = NEW.UNITS * NEW.PRICE
但我不明白你为什么要在触发器中这样做?您拥有插入时所需的所有数据,因此您可以直接在插入中执行产品。
或者,除非您有充分的理由想要存储它,为什么不省略可能多余的列并在您的选择中计算产品?