Comment empécher l'exécution dans un trigger ?
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:
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 :
Citation:
#1422 - Explicit or implicit commit is not allowed in stored function or trigger.