我正在尝试创建更新触发器

时间:2014-05-05 17:26:23

标签: plsql

我目前正在创建某种库存系统。

我有表stu_marks在哪里保存标记。

stu_marks:

roll_no   english  hindi
1          65       84
2          83       76
3          73       54

我还有表total_marks,其中我为每个学生保存了total_marks。

total_marks

roll_no      tot_marks
1              149
2              159
3              127

我的问题是当我更新stu_marks中任何主题的标记时,我是如何同时更新total_marks的?

2 个答案:

答案 0 :(得分:0)

你想要一个视图,而不是一张桌子。

CREATE VIEW total_marks AS
  SELECT roll_no, english + hindi AS tot_marks
    FROM stu_marks;

现在total_marks将始终拥有您想要的数据stu_marks

答案 1 :(得分:0)

未经测试,但这就是AFTER UPDATE触发器的用法。因此,每当您更新stu_marks表中的标记时,总标记将相应地重新计算

CREATE TRIGGER update_total_marks
AFTER UPDATE
   ON stu_marks
   FOR EACH ROW
BEGIN

UPDATE total_marks
SET tot_marks = :new.english + :new.hindi
WHERE roll_no = :new.roll_no;

END;