Detta beteende kan orsakas av anslutningsegenskap
allowMultiQueries=true
. Min gissning är att den här egenskapen kommer att få MySQL att bryta upp frågor på ;
som en frågeavgränsare och kör sedan dem som separata frågor, vilket i huvudsak bryter koden för att skapa utlösare.
Som du sa i ett - nu borttaget - svar att lägga till allowMultiQueries=true
faktiskt löste problemet (i motsats till vad jag förväntade mig), problemet kan faktiskt vara den sista ;
i din fråga. Så en annan sak att kontrollera är om problemet försvinner genom att ta bort den sista ;
(i END;
) i ditt skript (och inte med allowMultiQueries=true
). Vissa databaser tar inte hänsyn till ;
att vara giltig i slutet av ett påstående (eftersom det faktiskt är en avgränsare för separata påståenden).
(det här svaret är baserat på min kommentar ovan)