带插入和计算的触发器

Trigger with insert and calculations

我有两个表,TableA 有一个主键 (A_ID) 和一个工资列。 Table B 有一个主键 (B_ID) 和一个 paymentAmount 列。

我需要创建一个触发器,以便一旦插入 TableB B_ID,触发器就会转到 TableA,找到与 [=20 匹配的 A_ID =], 获取相关列的薪水然后除以 12 最后将计算结果添加到 TableB paymentAmount 列。

这是我的尝试,但无法编译;

CREATE TRIGGER test AFTER INSERT ON TableB
FOR EACH ROW
BEGIN
UPDATE TableB
SET TableB.paymentamount = TableA.salary / 12 WHERE TableA.staffid = TableB.staffid
END;

我以前从未使用过触发器,如果​​我用错了方法,我深表歉意。

我认为这符合您的要求:

create trigger test before insert on tableb
for each row
declare
    v_salary number;
begin
    select salary into v_salary from tablea a where a.a_id= :new.b_id;
    :new.paymentamount := v_salary / 12;
end;
/

简而言之:这是一个before触发器,它修改即将插入的行中的paymentamount。为了获得相关值,我们查询 tablea 以查找其 a_id 与新插入的 b_id 匹配的行,并恢复相应的 salary,我们将其分配给变量。