SQL-更新表之前先对表中的行数进行计数

我在Oracle SQL上做一个大学项目,尝试更新表时,不断出现错误“表(...)正在变异,触发器/函数可能看不到它”。我的partialTeams表具有3列(eventName varchar(),teamId号,teamPlace号)。

目的是在事件中更新给定团队的teamPlace时,该位置必须小于或等于同一事件中参与者团队的数量。

我的触发器如下:

Before update on participateTeams
for each row
Declare participants number;
Begin
     select count(*) into participants from participateteams where :New.eventName = participateteams.eventName;

        if(:NEW.teamplace>participants) then
            RAISE_APPLICATION_ERROR(-20250,'O lugar da equipa é inválido');
        end if;
End;
/

根据我的研究,这是因为我正在尝试读取与调用触发器相同的表。 我也尝试将代码的选择部分导出到函数中,但是问题仍然存在。

有小费吗?谢谢。