Bonjour,
Je débute avec les triggers.

J'ai réussi à faire un système de message d'erreur et à l'utiliser dans deux triggers mais cela n'empêche pas l'exécution de l'insertion.

Mon code actuel :
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
19
20
CREATE TRIGGER tre_cis_max_inscrits BEFORE INSERT ON tj_cnd_inscrire_ssn_cis FOR EACH ROW
BEGIN
   COMMIT;
   IF
       (
           SELECT COUNT(*)
           FROM tj_cnd_inscrire_ssn_cis
           WHERE cis_id_session = NEW.cis_id_session
       )
       + 1 >
       (
           SELECT ssn_capacite
           FROM te_session_ssn
           WHERE ssn_id = NEW.cis_id_session
       )
       THEN
           ROLLBACK;
           CALL pa_generer_erreur('La capacité d''inscription a été atteinte !');
   END IF;
END//
Sans le ROLLBACK, l'erreur est générée mais l'insertion se fait quand même et avec le COMMIT et ROLLBACK, MySQL retourne une erreur :
#1422 - Explicit or implicit commit is not allowed in stored function or trigger.