Banco de dados 51 visualizações

Como agendar consultas SQL recorrentes usando o Event Scheduler do MySQL

Ver no WHMCS

Como agendar consultas SQL recorrentes usando o Event Scheduler do MySQL

Olá, querido(a) cliente! Aqui é o seu Sensei da GeHost — e hoje vamos aprender juntos uma super habilidade para deixar seu banco de dados mais inteligente e autossuficiente. 🌟

Imagine que você precisa limpar dados antigos toda semana, gerar relatórios automáticos ou atualizar status de pedidos todos os dias… Sem precisar se lembrar de fazer isso manualmente. Com o Event Scheduler do MySQL, isso é possível!

O que é o Event Scheduler?

É uma função do MySQL que permite agendar tarefas SQL para serem executadas automaticamente, em horários definidos — como um relógio interno no seu banco de dados.

Dica do Sensei: Você pode pensar nisso como um "assistente virtual" que faz tarefas repetitivas no banco de dados, sem precisar estar lá o tempo todo.

Passo a passo: Ativar e usar o Event Scheduler

  1. Entre no cPanel do seu site. Use seu login e senha no painel da GeHost: painel.gehost.com.br.

    Tela de login do cPanel com campos de usuário e senha
  2. No cPanel, localize e clique em MySQL Databases (Bancos de Dados MySQL).

    Tela do cPanel com o ícone 'Bancos de Dados MySQL'
  3. Verifique se o Event Scheduler está ativado. Para isso, abra o phpMyAdmin (você pode acessar por "phpMyAdmin" no cPanel).

    No phpMyAdmin, vá até a aba SQL e digite o comando:

    SHOW VARIABLES LIKE 'event_scheduler';

    Se a resposta for ON, ótimo! O scheduler está ativado. Se estiver OFF, você precisará entrar em contato com o suporte da GeHost para habilitar — pois, por segurança, ele vem desativado por padrão em alguns ambientes.

  4. Quando ativado, você pode criar um evento. Vamos criar um exemplo simples: limpar logs antigos a cada 7 dias.

    No phpMyAdmin, vá à aba SQL e digite o seguinte comando:

    CREATE EVENT IF NOT EXISTS limpar_logs_antigos
    ON SCHEDULE EVERY 7 DAY
    DO
      DELETE FROM tabela_logs WHERE data_criacao < NOW() - INTERVAL 30 DAY;

    💡 Adapte o nome do evento, o intervalo (ex: EVERY 1 DAY), o nome da tabela e a condição de exclusão conforme sua necessidade.

  5. Após digitar o comando, clique em Executar.

    Se não aparecer erro, seu evento foi criado com sucesso! Ele agora será executado automaticamente a cada 7 dias.

  6. Para verificar todos os eventos criados, use este comando no phpMyAdmin:

    SHOW EVENTS;

    Isso mostra uma lista de todos os eventos ativos no seu banco de dados.

  7. Se precisar editar ou remover um evento, use:

    ALTER EVENT nome_do_evento ON SCHEDULE EVERY 1 DAY;
    DROP EVENT IF EXISTS nome_do_evento;

Importante: Dicas do Sensei

  • Teste sempre antes de colocar em produção: Crie o evento com um intervalo curto (ex: 1 minuto) para testar se a consulta está correta.
  • Não use comandos perigosos sem cuidado: Evite DELETE FROM tabela sem condição. Sempre use WHERE para não apagar tudo!
  • Eventos não são executados se o MySQL reiniciar: O scheduler é persistente, mas em alguns casos de reinício, pode precisar ser reativado. O suporte da GeHost pode ajudar com isso.
  • Se precisar de ajuda: Abra um chamado no painel do cliente e peça suporte técnico. Estamos aqui para você!

Quer saber mais?

Se você quer automatizar tarefas como:

  • Gerar relatórios semanais
  • Limpar dados antigos
  • Atualizar status de pedidos
  • Enviar e-mails automáticos (com ajuda de scripts PHP)

O Event Scheduler é seu aliado! Com ele, seu sistema cresce com mais inteligência e menos trabalho manual.

Seu Sensei da GeHost está aqui com carinho, sempre que precisar. 🌿

Com amor e código,
Sensei da GeHost

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.