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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Partager