2017-06-07 28 views
1

我使用的是Oracle 10个GI被告知使用触发器做这个任务我都拿出了在此之前减两列,然后添加一些值,并在Oracle使用触发器

|`create trigger total 
on inventory 
after insert or update 
for each row 
begin set 
:new.total=:new.stockin - :new.stockout +20; 
end;`| 

错误缺少第三列插入, 后,我想总= stockin -stockout + 20

表库存

|stcokin |    |stockout |    | total| 
|-------|    |---------|    |------| 
|2|      |5|       | 23| 

回答

0
  • 你应该在ssign使用:=
  • 您应该在更新或插入之前编辑新值。更新后更新(例如)更新其他表
  • 我认为你的触发器名称也造成了问题。

这样:

CREATE OR REPLACE TRIGGER trg_total BEFORE INSERT OR UPDATE ON inventory 
FOR EACH ROW 
BEGIN 
    :NEW.total := :NEW.stockin - :NEW.stockout + 20; 
END; 
+0

仍然得到错误ORA-04071:丢失之前, –

+0

感谢后或代替关键字它完美 –

+0

@PaariThirugnanasambandam那么你应该标记为回答正确:-) – realbart