我写了AFTER UPDATE
触发器来更新表abc_xyz
的列ABC
。当有人试图更新同一个表的列ans_mode
时,触发器应该触发。 abc_xyz
的默认值为0
。触发器应将其更新为1
。
CREATE OR REPLACE TRIGGER switchtrigger
AFTER UPDATE OF ans_mode
ON ABC
BEGIN
UPDATE ABC
SET abc_xyz = 1
WHERE abc_xyz= 0 AND ;
END;
我正在尝试编写AND
条件,以便只更新那些特定的行。
答案 0 :(得分:2)
上面的触发器是语句触发器而不是行触发器。 IMO最好让它成为BEFORE UPDATE行触发器,这样你就可以将:NEW值更改为你想要的值:
CREATE OR REPLACE TRIGGER SWITCHTRIGGER
BEFORE UPDATE OF ANS_MODE ON ABC
FOR EACH ROW
BEGIN
IF :OLD.ABC_XYZ = 0 THEN
:NEW.ABC_XYZ := 1;
END IF;
END;
分享并享受。