Mysql
 sql >> база данни >  >> RDS >> Mysql

Изключение на синтаксиса при тригер с множество изрази с MySQL и JDBC

Това поведение може да бъде причинено от свойство на връзката allowMultiQueries=true . Предполагам, че това свойство ще накара MySQL да разбие заявките в ; като разделител на заявки и след това ги изпълнявайте като отделни заявки, като по същество нарушавате кода ви за създаване на тригери.

Както казахте в - сега изтрит - отговорете, че добавянето на allowMultiQueries=true всъщност реши проблема (противно на моите очаквания), проблемът може всъщност да е последният ; във вашето запитване. Така че друго нещо, което трябва да проверите, е дали проблемът изчезва, като премахнете последния ;END; ) във вашия скрипт (и без да използвате allowMultiQueries=true ). Някои бази данни не отчитат ; да е валиден в края на изявление (тъй като всъщност е разделител за отделни оператори).

(този отговор се базира на моя коментар по-горе)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявката заключва таблици, не може да убие този процес

  2. PHP конвертира дата и час в секунди

  3. SET променлива в израза SELECT - MySQL

  4. Пускане на колона с външен ключ

  5. как да преброите появата на дума в няколко реда на mysql db