Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyzwalacz mySQL działa po wstawieniu konsoli, ale nie po wstawieniu skryptu

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Współpraca SQL-Server i MySQL?

  2. O użyciu ini_set('max_execution_time', 0);

  3. Data wygaśnięcia jako wartość domyślna dla kolumny TIMESTAMP

  4. Jak przechowywać obrazy w bazie danych mysql za pomocą php

  5. Czy tabele bazy danych systemu MySQL można przekonwertować na InnoDB?