MySQL - Como manter dados durante apenas 30 dias?

3 respostas
ssh

Pessoal, boa tarde.

Estou precisando manter dados de uma tabela durante apenas 30 dias, como posso fazer com que o banco de dados verifique isso e exclua os registros com mais de 30 dias automaticamente?

Obrigado desde já.

3 Respostas

S

ssh:
Pessoal, boa tarde.

Estou precisando manter dados de uma tabela durante apenas 30 dias, como posso fazer com que o banco de dados verifique isso e exclua os registros com mais de 30 dias automaticamente?

Obrigado desde já.

Um solução é programar um job que roda a cada 30 dias utilizando o Quartz.

http://www.quartz-scheduler.org/

ssh

Existe alguma outra alternativa?

Por exemplo, uma trigger?

Algo do genero.

Sou iniciante, e acredito que a instalação do Quartz vai ser complicada p/ mim.

Obrigado.
Att,

W

ssh:
Existe alguma outra alternativa?

Por exemplo, uma trigger?

Algo do genero.

Sou iniciante, e acredito que a instalação do Quartz vai ser complicada p/ mim.

Obrigado.
Att,


Da pra fazer sim.
Tem Event Scheduler no MySQL. Aqui tem uma documentacao de introducao.

http://dev.mysql.com/doc/refman/5.1/en/events-overview.html

Basicamente vc vai ter que fazer algo do tipo:

CREATE EVENT
<nome_do_seu_evento>
ON SCHEDULE
EVERY 1 WEEK
DO
<Instrucao_SQL> // aqui vc pode rodar um trigger, stored procedure ou uma simples instrucao SQL.

Isso vai criar um event que executa toda semana.

No seu caso, vc vai precisar usar essa opcoes:
STARTS <quando_o_evento_comeca>
ENDS <quando_o_evento_termina>

O MySQL Scheduler vai rodar em background de tempo em tempo procurando eventos para rodar. Pra ativa-lo vc precisa setar
a variavel global event_scheduler para 1

SET GLOBAL event_scheduler = 1;

Para desativar eh soh setar para 0. Eu nao tenho certeza se por default eh ativado ou desativado, mas eu acredito que seja desativado.
Entao vc vai ter que ativar para comecar a criar os eventos.

Para saber se o Scheduler esta ativado, conecta no seu banco e digita:

SELECT @@GLOBAL.event_scheduler;

//Daniel

Criado 6 de dezembro de 2011
Ultima resposta 7 de dez. de 2011
Respostas 3
Participantes 3