Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Syntaxausnahme bei Trigger mit mehreren Anweisungen mit MySQL und JDBC

Dieses Verhalten kann durch verursacht werden Verbindungseigenschaft allowMultiQueries=true . Meine Vermutung ist, dass diese Eigenschaft MySQL dazu bringt, Abfragen auf ; aufzuteilen als Abfragetrennzeichen und führen Sie diese dann als separate Abfragen aus, wodurch Ihr Triggererstellungscode im Wesentlichen beschädigt wird.

Wie Sie in einer - jetzt gelöschten - Antwort gesagt haben, fügen Sie allowMultiQueries=true hinzu das Problem tatsächlich gelöst hat (entgegen meiner Erwartung), könnte das Problem tatsächlich der letzte ; sein in deiner Anfrage. Überprüfen Sie also auch, ob das Problem durch Entfernen des letzten ; behoben wird (in END; ) in Ihrem Skript (und nicht mit allowMultiQueries=true). ). Einige Datenbanken berücksichtigen ; nicht am Ende einer Anweisung gültig sein (da es eigentlich ein Trennzeichen für getrennte Anweisungen ist).

(Diese Antwort basiert auf meinem Kommentar oben)