Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exceção de sintaxe no gatilho com várias instruções com MySQL e JDBC


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)