Myślę, że znacznie bardziej prawdopodobne jest, że napotkasz nieprzechwycony błąd, niż to, że wyzwalacz się nie wykonuje, zwłaszcza że pomyślnie wykonuje się go z konsoli.
Musisz określić, gdzie występuje błąd — w samym wyzwalaczu lub w skrypcie wywołującym.
W skrypcie Pythona wydrukuj instrukcję SQL, którą python wysyła do MySQL w celu wykonania, aby upewnić się, że jest skonstruowana zgodnie z oczekiwaniami – na przykład, jeśli NEW.type nie jest równe „PRE”, wyzwalacz zostanie wykonany, ale nie spowoduje żadnych aktualizacji.
Upewnij się również, że sprawdzasz błędy na wkładce. Nie jestem programistą Pythona, więc nie mogę powiedzieć, jak to się robi, ale to wydaje się być tym, czego szukasz.
Jeśli żadna z tych rzeczy nie prowadzi do problemu, skomentuj cały if (NEW.type = 'PRE') THEN
zablokuj i wykonaj prostą modyfikację, taką jak ustawienie NEW.type na 'debug'. Po upewnieniu się, że wyzwalacz rzeczywiście działa, ponownie testuj sukcesywnie z większą ilością prawdziwego kodu dodawanego z powrotem, aż wyizolujesz problem.
Poza tym, komentując Marcos, byłbym zaskoczony, gdyby skrypt nie uruchamiał się automatycznie po pomyślnym zakończeniu. Rzeczywiście, powiedziałbym to o każdym skrypcie/języku.