Bonjour à tous,

J'ai crée un trigger qui se declence a la suppression d'un ligne de la table service que voici :
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
17
18
CREATE OR REPLACE TRIGGER T1
BEFORE DELETE ON SERVICE
FOR EACH ROW
DECLARE
	CURSOR C IS SELECT IDPERSONNE,Profession,Service FROM EMPLOYE WHERE SERVICE=:OLD.IDSERVICE;
 
	PERS EMPLOYE.IDPERSONNE%TYPE;
	PROF EMPLOYE.PROFESSION%TYPE;
	SERVICE EMPLOYE.SERVICE%TYPE;
BEGIN
	OPEN C;
	FETCH C INTO PERS,PROF,SERVICE;
		INSERT INTO CANDIDAT VALUES (PERS, PROF);
		DELETE EMPLOYE WHERE SERVICE=(:OLD.IDSERVICE) AND
		IDPERSONNE=PERS;
		UPDATE 
END;
/
le code fonctionne bien..Si il n'y a qu'un employé qui travaille dans ce service. Lorsqu'il y en a 2 ca plante avec cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Violation de contrainte d'integrité - Enregistrement fils existant
Je dois faire une erreur quelque part dans mes boucles ou je ne sais pas.
Merci