je faisais une application sur oracle apex. maintenant, Si la capacité (cap
) est 0
, ce déclencheur doit supprimer le tuple nouvellement inséré car passenger_id
ne sera pas valide. qu'est-ce que je fais mal ici?Si la capacité (cap) est 0, ce déclencheur doit supprimer le tuple nouvellement inséré. qu'est-ce que je fais mal ici? voici le code
Voici le code
create or replace trigger Ticket_katbo
before insert on passenger
for each row
declare
newcap number;
cap number;
flightpk number;
begin
flightpk := :new.flight_fid;
select flight_capacity into cap from flight where fid = flightpk;
if (cap>0) THEN
newcap := cap-1;
update flight set flight_capacity = newcap where fid = flightpk ;
ELSIF (cap=0 or cap = NULL) THEN
Delete from passenger where passenger_id = :new.passenger_id;
END IF;
end;
Quel est le problème que vous rencontrez? –
Je vous conseille de créer une validation sur la page en apex et montrer une erreur de cette façon au lieu de laisser la transaction se produire et attraper cela dans un déclencheur par défaut. C'est pour cela que les validations sont faites. – Tom