Página 1 de 1

msqli tiggers

Publicado: 12 May 2015 18:10
por rafaxplayer
Bien, tengo base de datos de usuarios , se registran y si no validan en tres dias elimino registro , como puedo hacer esto en msql?
Algun tigger o algo?

Re: msqli tiggers

Publicado: 12 May 2015 20:07
por Pabloko
Hasta donde yo se los triggers son para modificar informacion y realizar ciertas consultas con respecto a los datos insertados.

Mysql tiene un event scheduler, yo nunca lo he usado, pero puedes probar

CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE

DO BEGIN
DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;

Re: msqli tiggers

Publicado: 13 May 2015 15:27
por rafaxplayer
Ok parece una solucion , trastearemos haber....

Re: msqli tiggers

Publicado: 13 May 2015 18:35
por Pabloko
Yo eso no lo he usado never, lo que si he hecho es tener un cron con una consulta que borra los anteriores a x tiempo

DELETE messages WHERE DATE < DATE_SUB(NOW(), INTERVAL 7 DAY);

Re: msqli tiggers

Publicado: 13 May 2015 23:18
por rafaxplayer
Bueno ya lo he sacado, posteo el codigo por si alguien le sirve de algo.

Antes de todo hay que activar el scheduler en la consola de mysql o en el panel de admin.

SET GLOBAL event_scheduler = ON;



CREATE EVENT `delete_user`
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP
DO DELETE FROM micocina_usuarios WHERE DATE_ADD(date_register, INTERVAL 3 DAY) >NOW() and activated=0;


Bueno este evento se dispara cada dia, empieza el día que se creo con current_timestamp ,elimina el usuario si el campo date_register han pasado tres dias y este no esta activado (activated=0);

Re: msqli tiggers

Publicado: 14 May 2015 03:40
por Pabloko
eso de

SET GLOBAL event_scheduler = ON;


hay que hacerlo cada vez que reinicias la instancia? o ya se queda asi...

no me queda muy claro si podria usar esto en un entorno donde el manejo del tiempo sea critico

Re: msqli tiggers

Publicado: 14 May 2015 08:37
por rafaxplayer
eso solo se hace una vez en el caso de que no este activado ya por defecto , aunque tambien se puede hacer desde phpadmin

Imagen

Bueno no se a que te refieres con manejo de tiempo critico , dejate de tecnicismos nen que tu y yo hemos hablado por skype y no eres tan nerd jajajajaj.