Plsql Oracle在插入另一个表时触发更新
我想有一个情况,我有两个表,表1是客户表与工资列和表2是一个税务表。 当我在税务表中插入一条包含税额的记录时,我希望该金额减去工资,并且客户表(工资列)将更新为净工资Plsql Oracle在插入另一个表时触发更新,plsql,oracle11g,Plsql,Oracle11g,我想有一个情况,我有两个表,表1是客户表与工资列和表2是一个税务表。 当我在税务表中插入一条包含税额的记录时,我希望该金额减去工资,并且客户表(工资列)将更新为净工资 CREATE OR REPLACE TRIGGER trig_update AFTER INSERT ON tax FOR EACH ROW DECLARE net_sal; BEGIN net_sal := :customers.salary - :tax.amount; UPDATE customers (
CREATE OR REPLACE TRIGGER trig_update
AFTER INSERT ON tax
FOR EACH ROW
DECLARE
net_sal;
BEGIN
net_sal := :customers.salary - :tax.amount;
UPDATE customers (salary) VALUES (net_sal)
WHERE (tax.cust_id == customers.id);
END;
我得到一个编译错误首先,SQL中没有“==”运算符。只有“=”
其次,在update语句中需要一个SET子句。应该是
UPDATE customers
SET salary = net_sal
WHERE tax.cust_id = customers.id;
第三,这是糟糕的桌子设计。不更新薪资列,而是创建一个名为“net_salary”的新列,并更新该列。如果您必须删除一个税务记录并插入一个新记录,该怎么办?你的工资价值仍然会从中扣除旧税,这是错误的低