Questo comportamento potrebbe essere causato da proprietà di connessione
allowMultiQueries=true
. La mia ipotesi è che questa proprietà farà sì che MySQL interrompa le query su ;
come separatore di query e quindi esegui quelle come query separate, sostanzialmente interrompendo il codice di creazione del trigger.
Come hai detto in una risposta - ora eliminata - aggiungendo allowMultiQueries=true
effettivamente risolto il problema (contrariamente alle mie aspettative), il problema potrebbe essere effettivamente l'ultimo ;
nella tua domanda. Quindi un'altra cosa da verificare è se il problema scompare rimuovendo l'ultimo ;
(in END;
) nel tuo script (e non usando allowMultiQueries=true
). Alcuni database non considerano ;
essere valido alla fine di un'istruzione (poiché in realtà è un delimitatore per separare le istruzioni).
(questa risposta si basa sul mio commento sopra)