Toto chování může být způsobeno vlastnost připojení
allowMultiQueries=true . Můj odhad je, že tato vlastnost způsobí, že MySQL rozdělí dotazy na ; jako oddělovač dotazů a poté je spouštět jako samostatné dotazy, čímž v podstatě narušíte kód pro vytvoření spouštěče.
Jak jste řekli v – nyní odstraněno – odpovězte, že přidání allowMultiQueries=true ve skutečnosti problém vyřešil (na rozdíl od mého očekávání), problém může být ve skutečnosti poslední ; ve vašem dotazu. Další věcí, kterou je třeba zkontrolovat, je, zda problém zmizel odstraněním posledního ; (v END; ) ve vašem skriptu (a bez použití allowMultiQueries=true ). Některé databáze neberou v úvahu ; být platný na konci příkazu (jelikož je to ve skutečnosti oddělovač samostatných příkazů).
(tato odpověď je založena na mém komentáři výše)