Mysql
 sql >> Database >  >> RDS >> Mysql

Eccezione di sintassi su trigger con più istruzioni con MySQL e JDBC

Questo comportamento potrebbe essere causato da proprietà di connessione allowMultiQueries=true . La mia ipotesi è che questa proprietà farà sì che MySQL interrompa le query su ; come separatore di query e quindi esegui quelle come query separate, sostanzialmente interrompendo il codice di creazione del trigger.

Come hai detto in una risposta - ora eliminata - aggiungendo allowMultiQueries=true effettivamente risolto il problema (contrariamente alle mie aspettative), il problema potrebbe essere effettivamente l'ultimo ; nella tua domanda. Quindi un'altra cosa da verificare è se il problema scompare rimuovendo l'ultimo ; (in END; ) nel tuo script (e non usando allowMultiQueries=true ). Alcuni database non considerano ; essere valido alla fine di un'istruzione (poiché in realtà è un delimitatore per separare le istruzioni).

(questa risposta si basa sul mio commento sopra)