我的数据库触发器存在问题,尽管我需要使用OLD / NEW变量,但我应该使插入/更新的值(RESULTATOBT
)为空,所以我无法应用{{3 }}。
错误是变异表一;由于在每行触发器中修改了一个表触发器。
以下是我的代码的相关摘录:
CREATE OR REPLACE TRIGGER VERIF_RESULTATS
AFTER INSERT OR UPDATE OF RESULTATOBT
ON PARTICIPATION
FOR EACH ROW
FOLLOWS VERIF_PARTICIPATION
WHEN ( NEW.RESULTATOBT IS NOT NULL )
BEGIN
UPDATE PARTICIPATION p
SET RESULTATOBT = NULL
WHERE p.CDPERS = :NEW.CDPERS
AND p.CDCOMPET = :NEW.CDCOMPET;
END;
/
预先感谢您的帮助。
N.B .:我是一个相对较新的成员,所以如果我的问题不适合正确的格式,我可能需要其他建议/编辑。
答案 0 :(得分:2)
使用before
触发器并只需分配NULL:
CREATE OR REPLACE TRIGGER VERIF_RESULTATS
BEFORE INSERT OR UPDATE OF RESULTATOBT
ON PARTICIPATION
FOR EACH ROW
WHEN ( NEW.RESULTATOBT IS NOT NULL )
BEGIN
:new.RESULTATOBT := NULL;
END;
/