use*_*659 1 sql oracle null triggers insert
我创建了一个触发器,它会自动将第一列值设置为后续的阶乘数.但是,另外,如果插入空值,我想将第二列的值设置为第一列的值增加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;
Run Code Online (Sandbox Code Playgroud)
但显然我错过了一些东西,因为没有任何反应,插入的null仍然是空的.
不要在触发器中重新更新表,更新您直接给出的行:
...
IF :new.mNumb is null
THEN
:new.mNumb = :new.tab_id + 5;
END IF;
...
Run Code Online (Sandbox Code Playgroud)