2009-05-15 38 views
6

Estoy tratando de escribir un script de prueba automatizado para probar un evento MySQL que creé, y me pregunto si hay alguna manera de ejecutar algún tipo de comando para forzar al evento a ejecutar de inmediato. El evento está configurado para ejecutarse diariamente a la medianoche, pero no quiero que el script de prueba automatizado tenga que esperar a que se desencadene el evento.Cómo forzar a un evento a ejecutarse en MySQL

Una forma en que puedo pensar es ALTERAR el evento para que se ejecute una sola vez 5 segundos en el futuro, pero me gustaría saber si hay una manera más elegante para hacer que se ejecute.

Respuesta

14
  1. Mover todo el código dentro del evento en un procedimiento almacenado
  2. Hacer que el evento sólo llamar al procedimiento almacenado
  3. Prueba el procedimiento almacenado con la sintaxis de llamada.
+0

En realidad prefiero esta solución para cambiar la hora del sistema ... ¿Se considera generalmente una buena práctica que los eventos invoquen procedimientos almacenados en lugar de ejecutar consultas como parte de la definición del evento? – user55417

+0

Personalmente, nunca he usado eventos, pero esto parece ser un buen indicador de que esta es una buena práctica :) – Evert

0

si se basa en la hora del sistema, cámbiela y vea si su evento se dispara, luego cambie la hora del sistema.

+0

Esa es una forma de hacerlo funcionar ... pero sería un poco prudente sobre cómo cambiar la hora del sistema para el probador. Especialmente porque he tenido problemas con las bases de datos MySQL y cambiando la hora del sistema. Por ejemplo, si cambia la hora del sistema en un servidor esclavo MySQL en un sistema replicado, el cambio de hora interrumpe el proceso de replicación. – user55417

Cuestiones relacionadas