To zachowanie może być spowodowane przez właściwość połączenia
allowMultiQueries=true
. Domyślam się, że ta właściwość sprawi, że MySQL rozbije zapytania na ;
jako separatora zapytań, a następnie wykonaj je jako oddzielne zapytania, zasadniczo łamiąc kod tworzenia wyzwalacza.
Jak powiedziałeś w - teraz usunięty - odpowiedz, że dodanie allowMultiQueries=true
faktycznie rozwiązałem problem (wbrew moim oczekiwaniom), problem może faktycznie dotyczyć ostatniego ;
w zapytaniu. Więc inną rzeczą do sprawdzenia jest to, czy problem zniknie, usuwając ostatni ;
(w END;
) w skrypcie (i nie używając allowMultiQueries=true
). Niektóre bazy danych nie uwzględniają ;
obowiązywać na końcu wyrażenia (ponieważ w rzeczywistości jest separatorem oddzielnych stwierdzeń).
(ta odpowiedź jest oparta na moim komentarzu powyżej)