我想创建一个触发器来计算插入SALESORDERDETAIL的每一行的小计。小计是数量*价格。有人可以帮我理解如何解决这个问题吗?
我相信所有必要的信息都在SALESORDERDETAIL中。我之前使用了一个触发器和一个序列,但我还没有使用触发器。我每次都需要程序和执行吗?我该怎么写?任何帮助都是值得赞赏的,因为我在最后一天一直坚持这一点。谢谢!
{{1}}
答案 0 :(得分:1)
假设这是Oracle?如果是这样,请考虑使用虚拟列而不是触发器:
... subtotal AS (soquantity * price), ...
...但是如果你还想要一个触发器,它看起来会像这样:
CREATE OR REPLACE TRIGGER SALESORDERDETAIL_before
BEFORE INSERT OR UPDATE
ON SALESORDERDETAIL
FOR EACH ROW
BEGIN
:new.subtotal := :new.soquantity * :new.price;
END;
/
CREATE OR REPLACE TRIGGER SALESORDERDETAIL_before
BEFORE INSERT OR UPDATE
ON SALESORDERDETAIL
FOR EACH ROW
BEGIN
:new.subtotal := :new.soquantity * :new.price;
END;
/
我不是不太优雅的解决方案的粉丝,但看起来像是用于教育,而不是解决问题,所以祝你好运。