使行触发器中的插入值无效
Nullify an inserting value in a row trigger
我的数据库触发器有问题,我应该使 inserted/updated 值 (RESULTATOBT
) 无效,尽管我需要 OLD/NEW 变量,所以我可以'申请 .
错误是一个变异的 table;由于在 中为每一行 触发器修改了 table。
这是我的代码的相关摘录:
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.: 我是一个相对较新的成员,所以如果我的问题不符合正确的格式,我可能需要额外的 advices/edits。
使用 before
触发器并简单地分配 NULL:
CREATE OR REPLACE TRIGGER VERIF_RESULTATS
<b>BEFORE</b> INSERT OR UPDATE OF RESULTATOBT
ON PARTICIPATION
FOR EACH ROW
WHEN ( NEW.RESULTATOBT IS NOT NULL )
BEGIN
:new.RESULTATOBT := NULL;
END;
/
我的数据库触发器有问题,我应该使 inserted/updated 值 (RESULTATOBT
) 无效,尽管我需要 OLD/NEW 变量,所以我可以'申请
错误是一个变异的 table;由于在 中为每一行 触发器修改了 table。
这是我的代码的相关摘录:
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.: 我是一个相对较新的成员,所以如果我的问题不符合正确的格式,我可能需要额外的 advices/edits。
使用 before
触发器并简单地分配 NULL:
CREATE OR REPLACE TRIGGER VERIF_RESULTATS
<b>BEFORE</b> INSERT OR UPDATE OF RESULTATOBT
ON PARTICIPATION
FOR EACH ROW
WHEN ( NEW.RESULTATOBT IS NOT NULL )
BEGIN
:new.RESULTATOBT := NULL;
END;
/