Я новичок в sql и пытаюсь создать триггер, который сравнивает два значения из двух разных таблиц с одинаковыми значениями из столбца TrainingCde_ID
Таблица 1 - Участники
Participant_ID | TrainingCde_ID
22 | SPOT2
23 | SPOT2
24 | SPOT2
11 | PRT1
Таблица 2 - Обучение
TrainingCde_ID | Capacity
SPOT2 | 2
TOP5 | 50
PRT1 | 20
Я хотел включить инструкцию подсчета, которая подсчитывает, сколько участников хочет посетить тренинг, а затем сравнивает, если значение больше значения Capacity во второй таблице, возникнет ошибка .
Код должен практически сказать мне, что если более 2 участников захотят посетить тренинг, например, SPOT2, то возникнет ошибка, сообщающая, что емкость заполнена.
create or replace trigger trg_ucast
before insert or update
on participants
for each row
declare
c_capacity training.capacity%type;
Part_ID integer;
begin
select capacity into c_capacity
from training
where trainingCde_ID = :new.trainingCde_ID;
select count (participant_ID) as PID into Part_ID
from Participants ;
if :new.Part_ID > :new.c_capacity then
raise_application_error(-20002, 'FULL CAPACITY!');
end if;
end;
/
Это то, что я создал, то есть эта ошибка >>
ERROR: pls-00049: bad bind variable 'new.Part_ID'
ERROR: pls-00049: bad bind variable 'new.c_capacity'
Может кто-нибудь помочь мне с ошибкой? Или, если в моем коде есть ошибка?