Bonsoir,

J'ai écrit un déclencheur dans le but de vérifier si un vétérinaire est encore en charge d'un animal avant que le vétérinaire ne soit supprimé.

N'ayant pas le moyen d'exécuter le code et n'étant vraiment pas certain que ma manière de faire soit correcte pour le test, je vous demande votre avis :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
-- Début du code
CREATE OR REPLACE TRIGGER Integrite_personnel BEFORE DELETE ON Personnel
DECLARE
	requete VARCHAR(1000); -- 1000 Pour s'assurer qu'il n'y ait pas d'overflow
	pb_veterinaire EXCEPTION;
BEGIN
	requete = (SELECT animal_id FROM Animal WHERE son_veterinaire_id = :old.personnel_id) ;
	IF NOT requete THEN RAISE pb_veterinaire; --si la requête n'a obtenu aucun résultat
        ELSE animal_id = TO_NUMBER(requete) ; --si oui, on prend l'id de l'unique animal trouvé (animal_id étant une PRIMARY KEY)
J'accepte volontiers toutes les critiques !


Flavien