我创建了一个触发器,该触发器将自动将第一列的值设置为后续的阶乘数。但是,另外,在插入空值的情况下,我想将第二列的值设置为第一列的值加5。这是我现在尝试的方法:
create or replace trigger test_tr
before insert on myT
for each row
begin
IF :new.mNumb is null
THEN
UPDATE myT
SET mNumb = :new.tab_id + 5;
END IF;
SELECT fac(test_seq.NEXTVAL)
INTO :new.tab_id
FROM dual;
end;
但是很明显,我缺少了什么,什么也没发生,插入的null仍然为空。
不要在触发器中重新更新表,而是直接更新给您的行:
...
IF :new.mNumb is null
THEN
:new.mNumb = :new.tab_id + 5;
END IF;
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句