viernes, 8 de septiembre de 2017

EVENTOS en MySQL (MariaDB)

Buenas tardes gente, el día de hoy les traigo una información acerca de Eventos en MySQL, para dejar una tarea repitiéndose iterativamente, puede ser, por ejemplo, realizar un respaldo. Esta funcionalidad esta disponible a partir de la versión 5.1 de MySQL y en MariaDB, esta disponible en cualquier versión, pues bien, vamos a empezar.

Lo primero que tenemos que hacer es activar la variable event_sheduler, y lo podemos hacer desde el archivo de configuración o también desde nuestra consulta, mediante el comando:

SET GLOBAL event_scheduler=ON;

Una vez activada esta variable, vamos a corroborar que se esté ejecutando correctamente y para eso vamos a introducir la siguiente consulta:

SHOW PROCESSLIST;



Como vemos, el proceso ya se encuentra corriendo y estamos listos para comenzar a crear nuestro evento.

Como nota, si quisiéramos desactivar la función o en este caso la variable de eventos, ya que, si no vamos a usar eventos en nuestra base de datos, es mejor desactivarla para que no consuma recursos, así que para desactivar la variable, teclearemos la siguiente consulta:

SET GLOBAL event_scheduler=OFF;

Vamos a comenzar a crear nuestro evento, y para eso crearemos una base de datos de prueba y de una vez crearemos una tabla:

create database test;
use test;
create table prueba(id int primary key auto_increment,
fecha date)

Ya con la base de datos y la tabla creada, procedemos a la creación del evento, cabe señalar que el nombre del evento no es sensible a mayúsculas y minúsculas así que EvEnTo es lo mismo que evento, para que lo consideren.

delimiter |
create event prueba_event
on schedule EVERY 30 SECOND
ON COMPLETION PRESERVE
DO
BEGIN
insert into prueba (fecha) values (now());
END
|

Para empezar tenemos la sentencia DELIMITER, como sabemos, todo se ejecutará como una sola sentencia, hasta que aparezca el carácter |, esto es porque dentro del cuerpo del evento, nos encontraremos con varias instrucciones que tengan el punto y coma (;) y el manejador de base de datos, lo ejecutaría como una consulta simple y no como parte de un conjunto de instrucciones. Después viene la sentencia create event y no hay que ser genios para saber que en esta parte de crea el evento y se le asigna el nombre, en este caso prueba_event. En la siguiente instrucción tenemos cada cuando se ejecutará ese evento, en este caso será cada 30 segundos. Existen, todas las opciones que se muestran en el cuadro de abajo.

YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND

En la instrucción ON COMPLETION PERSERVE le indicaremos que el evento, no morirá al ejecutarse, sino que permanecerá activo. La instrucción DO, indicará que va a hacer lo que contiene el grupo de instrucciones y el grupo de instrucciones empieza con la sentencia BEGIN, para programación el BEGIN sería como la llave de apertura, en seguida, seguirá el bloque de instrucciones, donde ingresaremos la fecha, corremos el query y esperamos.

Al correr el query vemos que automáticamente se ingresaron los registros.

select * from prueba




Hasta aquí la introducción a los eventos en MySQL, espero sea de su agrado y si les interesó, puedan profundizar, sé que es un ejemplo muy básico, pero de cualquier manera, se puede ir haciendo cada vez más complejo. Espero compartan, comenten, den +1, o clic a algún anuncio de su interés.

Banderas de Visitantes

Flag Counter