Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exception de syntaxe sur le déclencheur avec plusieurs instructions avec MySQL et JDBC

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)