Ce comportement peut être causé par le propriété de connexion
allowMultiQueries=true
. Je suppose que cette propriété fera en sorte que MySQL décompose les requêtes sur le ;
en tant que séparateur de requêtes, puis exécutez-les en tant que requêtes distinctes, brisant essentiellement votre code de création de déclencheur.
Comme vous l'avez dit dans une réponse - maintenant supprimée - en ajoutant allowMultiQueries=true
a effectivement résolu le problème (contrairement à mes attentes), le problème pourrait en fait être le dernier ;
dans votre requête. Donc, une autre chose à vérifier est si le problème disparaît en supprimant le dernier ;
(dans END;
) dans votre script (et sans utiliser allowMultiQueries=true
). Certaines bases de données ne prennent pas en compte ;
être valide à la fin d'une instruction (car il s'agit en fait d'un délimiteur pour séparer les instructions).
(cette réponse est basée sur mon commentaire ci-dessus)