Comparte:
Procedimientos almacenados en MySQL
Buenas Noches argentinas, me gustaría preguntarte/solicitarte si es posible que publiques unos tutoriales sobre triggers o procedimientos almacenados en la base de datos ya que actualmente estoy con un problema que tengo que resolver y es el siguiente:
- Tengo profesionales que elijen ponerse de guardia, seleccionan cuando inicia y cuando finalizan sus guardias laborales (son independientes).
- A su vez ellos pueden desactivar sus guardias o volverlas a activar si así lo quisieran... pero el flujo normal de trabajo es que no toquen nada luego de registrada su guardia (a la cual otros usuarios pueden solicitarles una emergencia).
El problema viene cuando: llega la fecha y hora en la que finaliza la guardia, ya que si bien hago un filtro para que no se muestren esas guardias porque ya finalizaron... en la base de datos siguen marcadas como "activas". Me gustaría tener un procedimiento almacenado en mi base de datos que cada "x" tiempo se ejecute y controle el "estado" en el que se encuentran las guardias ya finalizadas, y si están activas que las pase a desactivadas.
¿Es posible? ¿Podrías darme una mano con éso?
- Tengo profesionales que elijen ponerse de guardia, seleccionan cuando inicia y cuando finalizan sus guardias laborales (son independientes).
- A su vez ellos pueden desactivar sus guardias o volverlas a activar si así lo quisieran... pero el flujo normal de trabajo es que no toquen nada luego de registrada su guardia (a la cual otros usuarios pueden solicitarles una emergencia).
El problema viene cuando: llega la fecha y hora en la que finaliza la guardia, ya que si bien hago un filtro para que no se muestren esas guardias porque ya finalizaron... en la base de datos siguen marcadas como "activas". Me gustaría tener un procedimiento almacenado en mi base de datos que cada "x" tiempo se ejecute y controle el "estado" en el que se encuentran las guardias ya finalizadas, y si están activas que las pase a desactivadas.
¿Es posible? ¿Podrías darme una mano con éso?
Para hacer eso simplemente tendrias que montar un scope global, te dejo aqui la documentacion:
Edit 1: Ya revise y parece que mysql si cuenta con jobs pero te recomiendo hacerlo por medio de Laravel para evitar meter carga a tu servidor por algo tan simple.
Esto ya es Laravel intermedio/avanzado pero son herramientas muy utiles. Tambien puedes definir tus propios eventos, aqui hay un post acerca de eso: