在插入乘客表后尝试触发触发器时,我会收到此错误。此触发器应该调用一个过程,该过程采用新插入值的两个参数,并基于此更新另一个表,即预订表。但是,我收到此错误:
ORA-04091: table AIRLINESYSTEM.PASSENGER is mutating, trigger/function may not see it
ORA-06512: at "AIRLINESYSTEM.CALCULATE_FLIGHT_PRICE", line 11 ORA-06512: at
"AIRLINESYSTEM.CALCULATE_FLIGHT_PRICE", line 15 ORA-06512: at
"AIRLINESYSTEM.CALCULATE_FLIGHT_PRICE_T1", line 3 ORA-04088: error during execution of
trigger 'AIRLINESYSTEM.CALCULATE_FLIGHT_PRICE_T1' (Row 3)
Run Code Online (Sandbox Code Playgroud)
我在 SQL 命令行中编译并测试了该过程,它工作正常。问题似乎出在触发器上。这是触发代码:
create or replace trigger "CALCULATE_FLIGHT_PRICE_T1"
AFTER
insert on "PASSENGER"
for each row
begin
CALCULATE_FLIGHT_PRICE(:NEW.BOOKING_ID);
end;?????
Run Code Online (Sandbox Code Playgroud)
为什么触发器不调用过程?