0% encontró este documento útil (0 votos)
145 vistas7 páginas

Eventos MySQL

Los eventos MySQL permiten programar tareas para que se ejecuten automáticamente en momentos previamente establecidos. Pueden crearse eventos para ejecutarse una sola vez o de forma periódica, y se utilizan comúnmente para automatizar procesos de mantenimiento de bases de datos.

Cargado por

Eduardo Robayo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
145 vistas7 páginas

Eventos MySQL

Los eventos MySQL permiten programar tareas para que se ejecuten automáticamente en momentos previamente establecidos. Pueden crearse eventos para ejecutarse una sola vez o de forma periódica, y se utilizan comúnmente para automatizar procesos de mantenimiento de bases de datos.

Cargado por

Eduardo Robayo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

19/5/22, 07:50 Eventos MySQL

Curso Profesional de Base d...



Eventos MySQL

Eventos MySQL

A partir de la versión 5.1, MySQL añade el concepto de eventos. Un evento no es más

que una tarea la cual se ejecuta de forma automática en un momento previamente


programado. Si eres un usuarios Linux puedes ver a los eventos cómo los cron jobs .

Los eventos nos permitirán a nosotros cómo administradores de base de datos


programar ciertas tareas las cuales queremos que se ejecuten de forma periódica o
en un momento en concreto, de tal manera que podamos automatizar ciertos

procesos.

EJEMPLOS
Para este tutorial me apoyaré de mi tabla test.

CREATE TABLE test(

evento VARCHAR(50),

[Link] 1/7
19/5/22, 07:50 Eventos MySQL

fecha DATETIME

);

Lo primero que debemos de hacer es habilitar nuestro servidor para que pueda
ejecutar eventos.

SET GLOBAL event_scheduler = ON;

Posteriormente creamos nuestro evento; En mi caso, tendrá el nombre de insertion


event. Este evento se ejecutará dentro de 1 min, y lo que hará, será insertar un
registro en mi tabla.

CREATE EVENT insertion_event

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE

DO INSERT INTO test VALUES ('Evento 1', NOW());

El nombre del evento no debe de poseer más de 64 caracteres.

Si queremos que el evento se ejecute en una fecha en concreto, únicamente

debemos de especificarlo en ON SCHEDULE AT. Recuerda, el formato es año-mes-


día hora:minuto:segundo.

ON SCHEDULE AT '2018-12-31 [Link]'

Si nuestro evento ejecutará más de una sentencia SQL debemos de apoyarnos de

BEGIN y END.

DELIMITER //

CREATE EVENT insertion_event

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE

DO

[Link] 2/7
19/5/22, 07:50 Eventos MySQL

BEGIN

INSERT INTO test VALUES ('Evento 1', NOW());

INSERT INTO test VALUES ('Evento 2', NOW());

INSERT INTO test VALUES ('Evento 3', NOW());

END //

DELIMITER ;

Una vez el evento se haya creado, nosotros podemos listarlo.

SHOW events\G;

Si queremos eliminar un evento haremos uso de DROP.

DROP EVENT nombre_evento;

Es importante mencionar que una vez el evento haya expirado, este, será eliminado

de forma automática. Si nosotros no queremos que esto ocurra debemos de


apoyarnos de ON COMPLETION

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE

ON COMPLETION PRESERVE

...

Algo común con los eventos es trabajar con store procedures.

CREATE EVENT nombre_evento

ON SCHEDULE AT 'fecha de ejeución'

DO

CALL store_procedure();

[Link]
Ó 3/7
19/5/22, 07:50 Eventos MySQL

EVENTOS PERIÓDICOS.
Los eventos los podemos programar para que se ejecuten de forma periódica.

CREATE EVENT insertion_event

ON SCHEDULE EVERY 1 MINUTE STARTS '2018-07-07 [Link]'

DO INSERT INTO test VALUES ('Evento 1', NOW());

En esta ocasión, el evento se ejecuta cada minuto después de las 6:30 PM.
Podemos programar la ejecución para cada segundo, minuto, hora, semana, mes o
año.

Si nosotros queremos que el evento se ejecute entre un rango de fechas debemos


de apoyarnos de ENDS.

CREATE EVENT insertion_event

ON SCHEDULE EVERY 1 MINUTE STARTS '2018-07-07 [Link]'

ENDS '2018-07-07 [Link]'

DO INSERT INTO test VALUES ('Evento 1', NOW());

Ahora, el evento se ejecuta durante un periodo de 30 minutos (De 6:30 PM a 7:00


PM).

EDITAR EVENTOS
Si por alguna razón necesitamos detener un evento, lo que debemos de hacer es

deshabilitarlo.

ALTER EVENT nombre_evento

DISABLE;

Para habilitar nuevamente un evento colocamos ENABLE.

[Link] 4/7
19/5/22, 07:50 Eventos MySQL

ALTER EVENT nombre_evento

ENABLE;

DETENER EVENTOS
Para detener completamente todos los eventos, debemos de ejecutar la siguiente
sentencia.

SET GLOBAL event_scheduler = OFF;

ESTRUCTURA DE UN EVENTO
Los eventos en MySQL pueden ser tan complejos como nosotros los deseemos.

CREATE

[DEFINER = { user | CURRENT_USER }]

EVENT

[IF NOT EXISTS]

event_name

ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE | DISABLE ON SLAVE]

[COMMENT 'string']

DO event_body;

schedule:

AT timestamp [+ INTERVAL interval] ...

| EVERY interval

[STARTS timestamp [+ INTERVAL interval] ...]

[ENDS timestamp [+ INTERVAL interval] ...]

[Link] 5/7
19/5/22, 07:50 Eventos MySQL

interval:

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

Atrás Siguiente

1.-
Introdución 8
temas

2.-
Servidor de base de datos 3
temas

3.-
Base de datos y tablas 10
temas

4.-
Restricciones 8
temas

5.-
Modificar tablas 2
temas

6.-
Sentencias basicas 12
temas

7.-
Funciones 8
temas

8.-
Sentencias avanzadas 12
temas

9.-
Joins 7
temas

10.-
Vistas 4
temas

11.-
Procedimientos 7
temas

[Link] 6/7
19/5/22, 07:50 Eventos MySQL

12.-
Transacciones 4
temas

13.-
Extras

Motores de almacenamiento en MySQL

Eventos MySQL

Cursores MySQL

Respaldo de información

Asignar permisos a usuarios MySQL

14.-
Triggers 5
temas

15.-
Examen del curso

[Link] 7/7

También podría gustarte