更新触发器中的行

时间:2016-04-07 17:22:00

标签: sql oracle

我有那张桌子:TRANSFERS(姓名,姓氏,日期0,日期,联盟,团队) 一个玩家可以出现不止一次。如果有一个dateF null并且我插入一个具有相同名称和姓氏的新行,我必须在date0 new之前更改dateF null

我该怎么做?

CREATE OR REPLACE TRIGGER T1
   BEFORE INSERT OR UPDATE on transfers
   FOR EACH ROW
 BEGIN
 UPDATE transfers
 SET dateF=:NEW.date0 
 WHERE dateF IS NULL and name=:NEW.nameand surname=:NEW.surname;
 END T1;
 /

我获得了变异表的错误

我使用oracle

2 个答案:

答案 0 :(得分:0)

您无法在针对其正在执行的表的触发器中执行更新。您可以使用pragma autonomous做一些事情,但是如果您的初始插入或更新失败,则不会回滚。

答案 1 :(得分:0)

尝试使用INSTEAD OF触发器并自行进行插入和更新。