Automatize tarefas no banco de dados com Events

Marcos Marcolin • November 18, 2024

database mariadb mysql

Automatize 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:

Vantagens de usar Events

Exemplos de criação para MariaDB/MySQL

  1. 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;
  1. 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;
  1. 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

MariaDB Events Overview

MySQL Event Scheduler Overview

pg_cron - Run periodic jobs in PostgreSQL

Obrigado por chegar até aqui e até a próxima!