2009-05-15 12 views
6

Próbuję napisać automatyczny skrypt testowy do testowania zdarzenia MySQL, które stworzyłem, i zastanawiam się, czy istnieje sposób wykonania jakiegoś polecenia wymuszenia zdarzenia wykonać natychmiast. Wydarzenie jest uruchamiane codziennie o północy, ale nie chcę, aby zautomatyzowany skrypt testowy musiał czekać na wywołanie zdarzenia.Jak wymusić zdarzenie do wykonania w MySQL

Jednym ze sposobów, jakie mogę wymyślić, to ZMIENIĆ wydarzenie, aby wykonać go jednorazowo 5 sekund w przyszłości, ale chciałbym wiedzieć, czy istnieje bardziej elegancki sposób, aby go wykonać.

Odpowiedz

14
  1. Przenieś cały kod w wypadku w procedurze przechowywanej
  2. Dodać zdarzenie tylko wywołać procedurę przechowywaną
  3. przetestować procedurę przechowywane w składni CALL.
+0

Naprawdę wolę to rozwiązanie od zmiany czasu systemowego ... Czy ogólnie uważa się za dobrą praktykę, aby zdarzenia wywoływały procedury składowane, a nie wykonywanie zapytań w ramach definicji zdarzenia? – user55417

+0

Osobiście nigdy nie brałem udziału w imprezach, ale jest to dobry wskaźnik, to dobra praktyka :) – Evert

0

jeśli jest oparta na czasie systemowym, zmień to i zobacz, czy zdarzenie się uruchomi, a następnie zmień czas systemowy.

+0

To jeden ze sposobów, aby to zadziałało ... ale byłbym trochę ostrożny, zmieniając czas systemowy dla testera. Zwłaszcza, że ​​mam problemy z bazami danych MySQL i zmieniłem czas systemowy. Na przykład, jeśli zmienisz czas systemowy na podrzędnym serwerze MySQL w zreplikowanym systemie, zmiana czasu spowoduje przerwanie procesu replikacji. – user55417