更新触发器后更新同一行

时间:2016-06-30 08:27:24

标签: oracle

我有一点问题,我必须在同一张桌子上的字段,ficha_terminada和fecha

CREATE OR REPLACE TRIGGER FECHA 
AFTER UPDATE OF FICHA_TERMINADA ON table_PRODUCT FOR EACH ROW
BEGIN
     UPDATE table_PRODUCT SET new.FECHA = SYSDATE; 
END;

我只想在更新该行的ficha_terminada时更新该行的fecha字段,到现在为止更新该行。

但在这一行UPDATE table_PRODUCT SET new.FECHA = SYSDATE;

中给我一个错误
ORA-00904: invalid identifier

但字段存在!!

2 个答案:

答案 0 :(得分:0)

我认为这是对新参考的误用:新的。不能在UPDATE中用作更改的目标列。

您必须在触发器中使用PL / SQL:

NEW.fetcha := sysdate;
祝你好运

答案 1 :(得分:0)

使用Pavel的解决方案,但在更新之前的行触发器中。

待办事项

Product
  id:
  type: food/drink/smoke etc..
  foodproduct: one to Many nullable: FoodProduct (it's actually one to zero/one but i find it more performant)
  drinkproduct: one to Many nullable: DrinkProduct 
  smokeproduct:one to Many nullable: SmokeProduct 


FoodProduct:
  id:
  product_id (many to one to Product)
  options one to many to foodOptions