Esse comportamento pode ser causado pelo propriedade de conexão
allowMultiQueries=true
. Meu palpite é que esta propriedade fará o MySQL quebrar as consultas no ;
como um separador de consulta e, em seguida, execute-as como consultas separadas, essencialmente quebrando seu código de criação de gatilho. Como você disse em uma resposta - agora excluída - adicionando
allowMultiQueries=true
realmente resolveu o problema (ao contrário do que eu esperava), o problema pode ser o último ;
em sua consulta. Então, outra coisa a verificar é se o problema desaparece removendo o último ;
(em END;
) em seu script (e não usando allowMultiQueries=true
). Alguns bancos de dados não consideram ;
para ser válido no final de uma instrução (já que na verdade é um delimitador para instruções separadas). (esta resposta é baseada no meu comentário acima)