如果在Oracle SQL中插入null,则设置一个值

用户名

我创建了一个触发器,该触发器将自动将第一列的值设置为后续的阶乘数。但是,另外,在插入空值的情况下,我想将第二列的值设置为第一列的值加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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章