sql >> Database >  >> RDS >> Mysql

Syntaxisuitzondering bij trigger met meerdere instructies met MySQL en JDBC

Dit gedrag kan worden veroorzaakt door de verbindingseigenschap allowMultiQueries=true . Ik vermoed dat deze eigenschap ervoor zorgt dat MySQL zoekopdrachten op de ; . opsplitst als een scheidingsteken voor query's en voer deze vervolgens uit als afzonderlijke query's, waardoor in feite de code voor het maken van een trigger wordt verbroken.

Zoals je zei in een - nu verwijderd - antwoord dat het toevoegen van allowMultiQueries=true het probleem daadwerkelijk heeft opgelost (in tegenstelling tot mijn verwachting), is het probleem misschien de laatste ; in uw vraag. Dus een ander ding om te controleren is of het probleem verdwijnt door de laatste ; . te verwijderen (in END; ) in uw script (en niet met allowMultiQueries=true ). Sommige databases houden geen rekening met ; om geldig te zijn aan het einde van een verklaring (omdat het eigenlijk een scheidingsteken is om verklaringen te scheiden).

(dit antwoord is gebaseerd op mijn opmerking hierboven)



  1. Hoe schrijf je een voorwaarde in een MySQL select statement?

  2. Dynamische websitebeveiligingsvragen (PHP+MySQL)

  3. Hoe RANK() te gebruiken in SQL Server

  4. MYSQL-gegevens exporteren naar Excel/CSV via php