Académique Documents
Professionnel Documents
Culture Documents
DonnierocK
Lo primero es habilitar a nuestro servidor MySQL para que pueda hacerlo, con la siguiente lnea:
1 CREATE
2 [DEFINER = { user | CURRENT_USER }]
3 EVENT
4 [IF NOT EXISTS]
5 event_name
6 ON SCHEDULE schedule
7 [ON COMPLETION [NOT] PRESERVE]
8 [ENABLE | DISABLE | DISABLE ON SLAVE]
9 [COMMENT 'comment']
10 DO sql_statement;
11
12 schedule:
13 AT timestamp [+ INTERVAL interval] ...
14 | EVERY interval
15 [STARTS timestamp [+ INTERVAL interval] ...]
16 [ENDS timestamp [+ INTERVAL interval] ...]
17
18 interval:
19 quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
20 WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
21 DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
Ok, visto as, acojona. Pero no todos los parmetros son obligatorios, y explicado es fcil. Reamente
necesitas slo un nombre para el event_name, una condicin para que se cumpla el ON SCHEDULE
y un cdigo sql que ejecutar despus del DO. Te meto un ejemplillo sacado del curro, por ejemplo:
Tiene algo ms de cdigo porque lo genera automticamente PHPMyAdmin pero la idea es que crea
un evento con ese nombre que, cada da un segundo despus de medianoche actualice la tabla
seleccionada poniendo a cero la columna indicada cuando se cumpla una condicin (en este caso, que
hayan pasado 45 das desde la creacin). Bueno, como el cdigo es tocho, os pongo debajo un ejemplo
con la sintaxis ms bsica posible. Imaginemos una funcion que actualiza el saldo de una cuenta
diaria de gastos a 1000 euros:
Los dos ejemplos son recurrentes, se ejecutan todos los das a una hora (el parmetro Starts no
permite denir el momento en que comenzar a ejecutarse, acurdate de ponerlo porque si pones
solo EVERY 1 DAY debera fallar, y no tiene por qu ser cada da, puedes poner un periodo concreto
de horas, minutos, das, semanas). Existe la posibilidad de que un evento se ejecute slo una vez,
en el momento que le indiques y luego se borre. Por ejemplo imaginemos que quieres que dentro de 6
horas se borren todos los registros del ao 2012:
https://donnierock.com/2013/01/30/eventos-en-mysql-planificar-tareas-fecha/ 1/3
29/8/2017 Eventos en MySQL (planificar tareas por fecha y hora) DonnierocK
Y en estos tres ejemplos slo hemos utilizado sentencias de SQL simples, pero imagina la potencia
(y los riesgos de joderlo todo si la cagas, claro est) si los combinamos con procedimientos
almacenados y con disparadores Me imagino una bombillita alumbrando tu cabeza, y todas las
cuestiones de mantenimiento y actualizacin que se te estn ocurriendo.
AUTOMATIZACIN DE TAREAS MYSQL SQL
Gracias
Saludos.
8. Luis
Me gustaria saber como harias un backup de todas las bases del servidor y que las guarde dentro
del servidor web
1. David Flores
https://donnierock.com/2013/01/30/eventos-en-mysql-planificar-tareas-fecha/ 2/3
29/8/2017 Eventos en MySQL (planificar tareas por fecha y hora) DonnierocK
1. David Flores
Un trigger no se puede ejecutar a una espcica de forma independiente tendra que
ocurrir un evento INSERT UPDATE o DELETE .
Imaginate que quisieras que se actualice tus datos a 00:00:00 todos los dias tedrias que
provocar una insercion delete o un update a esa hora todos los dias de por vida y esos si
tienes un solo evento generalmente son varios eventos y es mas podria no ser tu unica base
de datos seria peor imaginate un Trigger es una cosa y un evento es otra cada uno por su
lado no
BLOG DE WORDPRESS.COM.
https://donnierock.com/2013/01/30/eventos-en-mysql-planificar-tareas-fecha/ 3/3