To zachowanie może być spowodowane przez właściwość połączenia
allowMultiQueries=true . Domyślam się, że ta właściwość sprawi, że MySQL rozbije zapytania na ; jako separatora zapytań, a następnie wykonaj je jako oddzielne zapytania, zasadniczo łamiąc kod tworzenia wyzwalacza.
Jak powiedziałeś w - teraz usunięty - odpowiedz, że dodanie allowMultiQueries=true faktycznie rozwiązałem problem (wbrew moim oczekiwaniom), problem może faktycznie dotyczyć ostatniego ; w zapytaniu. Więc inną rzeczą do sprawdzenia jest to, czy problem zniknie, usuwając ostatni ; (w END; ) w skrypcie (i nie używając allowMultiQueries=true ). Niektóre bazy danych nie uwzględniają ; obowiązywać na końcu wyrażenia (ponieważ w rzeczywistości jest separatorem oddzielnych stwierdzeń).
(ta odpowiedź jest oparta na moim komentarzu powyżej)