sql >> Databasteknik >  >> RDS >> Mysql

Syntaxundantag på trigger med flera satser med MySQL och JDBC

Detta beteende kan orsakas av anslutningsegenskap allowMultiQueries=true . Min gissning är att den här egenskapen kommer att få MySQL att bryta upp frågor på ; som en frågeavgränsare och kör sedan dem som separata frågor, vilket i huvudsak bryter koden för att skapa utlösare.

Som du sa i ett - nu borttaget - svar att lägga till allowMultiQueries=true faktiskt löste problemet (i motsats till vad jag förväntade mig), problemet kan faktiskt vara den sista ; i din fråga. Så en annan sak att kontrollera är om problemet försvinner genom att ta bort den sista ; (i END; ) i ditt skript (och inte med allowMultiQueries=true ). Vissa databaser tar inte hänsyn till ; att vara giltig i slutet av ett påstående (eftersom det faktiskt är en avgränsare för separata påståenden).

(det här svaret är baserat på min kommentar ovan)



  1. MySQL direkt INSERT INTO med WHERE-sats

  2. Hitta närmaste platser med hjälp av punktdatatyp och st_distance_sphere i MySQL 8

  3. MySQL-utlösare och SUM()

  4. Aggregerande (x,y) koordinatpunktmoln i PostgreSQL