【发布时间】:2019-05-03 16:19:51
【问题描述】:
大家好,第一次在 Stack Overflow 上提问。
所以我的问题如下:当A表插入一行时,需要计算奖励积分,并且必须将它们添加到表B中的赚取积分列中。我们还需要根据层级计算额外积分表 B 中的客户。表 B 有一个引用表 C 的 FK,其中包含我需要的属性,因此我的积分计算是正确的。
我设法编译了以下代码,它基本上链接了表 A 和 B,但我不知道如何从表 C 中获取我需要的值才能使其正确。
CREATE OR REPLACE TRIGGER JavierRewards
AFTER INSERT ON Purchases
FOR EACH ROW
BEGIN
UPDATE customers
SET customers.earned_points = customers.earned_points + Round(:New.purchase_amount * 1.5)
WHERE customers.cust_id = :new.cust_id;
END;
有什么想法吗?第一次学习触发所以它有点令人沮丧。
【问题讨论】:
-
一般说明:不要在触发器中做太多这种逻辑。最后,您可能需要在不触发这些触发器的情况下进行更改,并且您基本上会被隐藏在数据库中的大量业务逻辑所困,无法控制何时触发。如果您无法将其从数据库中取出,至少创建一个存储过程来存储购买并更新客户。我很难学到这一点。
-
这是一个家庭作业,之后我必须做一些程序lol
-
啊 ^.^ 这样的话没关系:)
-
对此有什么建议吗?
-
哦,我认为 Barbaros Özhan 正在回答您的问题。 :-) 你可以通过阅读this来支持他。
标签: sql oracle plsql insert-update database-trigger