Automatize tarefas no banco de dados com Events
Marcos Marcolin • November 18, 2024
database mariadb mysqlAutomatize tarefas no banco de dados com Events
Você sabia que não precisa depender de cron jobs ou ferramentas externas para executar tarefas automáticas no seu sistema? No MariaDB e no MySQL, por exemplo, você pode usar os Events, uma funcionalidade que permite agendar e executar tarefas diretamente no banco de dados de forma simples e eficiente.
O que são Events?
Events são como cron jobs, mas gerenciados pelo próprio banco. Com eles, você pode automatizar tarefas recorrentes, como:
- Limpeza de registros antigos.
- Atualização periódica de tabelas.
- Manutenção do banco, sem precisar de scripts externos.
Vantagens de usar Events
- Sem dependência de cron: tudo acontece dentro do banco, sem a necessidade de scripts externos.
- Gerenciamento centralizado: todas as tarefas estão no mesmo lugar que seus dados.
- Agendamento flexível: execute tarefas de tempos em tempos, em horários específicos, ou apenas uma vez.
Exemplos de criação para MariaDB/MySQL
- Imagine que você queira limpar registros antigos de uma tabela chamada logs automaticamente todos os dias:
CREATE EVENT clean_logs
ON SCHEDULE EVERY 1 DAY
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
- Faça otimização e atualização de análise de tabelas mensalmente:
CREATE EVENT clean_logs
ON SCHEDULE EVERY 1 DAY
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
- Imagine que você tem uma tabela chamada invoices com registros de faturas. Você pode criar um evento para atualizar o status das faturas vencidas:
CREATE EVENT update_overdue_invoices
ON SCHEDULE EVERY 1 DAY
DO
UPDATE invoices
SET status = 'overdue'
WHERE due_date < NOW() AND status != 'paid';
🎲 Bancos de Dados que oferecem Events nativamente
✅ MariaDB: suporte completo com CREATE EVENT, permitindo automação de tarefas diretamente no banco.
✅ MySQL: semelhante ao MariaDB.
❎ PostgreSQL: não possui suporte nativo a Events, mas você pode usar a extensão pg_cron para agendamento de tarefas.
❎ MongoDB: não possui suporte nativo a eventos agendados, necessitando de ferramentas externas.
Documentação
MySQL Event Scheduler Overview
pg_cron - Run periodic jobs in PostgreSQL
Obrigado por chegar até aqui e até a próxima!