所以在我开始之前,我想我明白为什么我会收到错误。这是因为我在触发前使用,如果没有home_id
的值已经插入,它将不会显示任何内容。但问题是,我之前使用过相同的触发器并且工作正常。
所以这是我的触发器:
create or replace trigger trgpick
BEFORE insert or update on picking
for each row
declare
v_count number:=0;
BEGIN
SELECT COUNT(*) INTO v_count
FROM home
WHERE home_ID=:NEW.home_ID;
IF v_count>4 then
:new.time:=9;
ELSIF v_count<5then
:new.time:=3;
END IF;
END;
因此,当我执行此触发器并在其中插入一个实际的Home_id
值时,我收到以下错误:
ORA-01403: no data found
如果您在操作之前使用,则无法获得':NEW'值,那么您可能需要在操作触发后使用或使用:OLD限定符。