Trigger contrainte d'exclusion
Bonjour,
Je suis actuellement confronté à une difficulté sur l'un de mes trigger.
voici la situation:
J'ai trois tables, une table PARTICIPANT (ce qui nous interesse dans cette table c'est l'id du participant), une table CONTENUHEBERGEMENT et une table BENEVOLE. Ces deux dernières tables on comme clef étrangère l'id du participant (nommée respectivement idparticipant et idbenevole).
la contrainte est la suivante: si j'ai l'id dans de mes participants dans la table CONTENUHEBERGEMENT cette même id ne doit pas être dans la table BENEVOLE et vice-versa.
J'ai donc écrit un trigger, mais je n'arrive pas à quelque chose qui compile.
Pour le moment je ne trouve pas de solution satifaisante, je vous remercie d'avance.
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
create or replace trigger contraintebenevole
before insert or update
on benevole
declare
dejaheberge exception;
begin
if :new.IDBENEVOLE in
(select IDPARTICIPANT from CONTENUHEBERGEMENT where :new.IDBENEVOLE = CONTENUHEBERGEMENT.IDPARTICIPANT)
then
raise dejaheberge;
end if;
exception
when others then
raise_application_error (-20111, 'Un bénévole ne peux pas etre heberger.');
end; |