Resumo : neste tutorial, você aprenderá como usar o MySQL ALTER EVENT
para modificar um evento existente.
Introdução à instrução MySQL ALTER EVENT
No MySQL, um evento é uma tarefa executada de acordo com um cronograma. Por causa disso, um evento também é conhecido como evento agendado .
MySQL permite alterar vários atributos de um evento existente usando a ALTER EVENT
instrução. Aqui está a sintaxe básica da ALTER EVENT
instrução:
ALTER EVENT [IF EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
DO event_body
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
IF EXISTS
: esta cláusula opcional evita a ocorrência de um erro se o evento especificado não existir.event_name
: O nome do evento que você deseja alterar.ON SCHEDULE
: especifica a nova programação do evento, incluindo frequência, horário de início e horário de término.ON COMPLETION
: indica se você deseja preservar ou descartar o evento após sua conclusão. UsePRESERVE
para manter o evento eNOT PRESERVE
para descartá-lo.COMMENT 'comment'
: um comentário opcional que descreve o evento.ENABLE | DISABLE
: permite ativar ou desativar o evento. Observe que um evento desativado não será executado até que você o reative.DO event_body
: especifica as novas instruções ou procedimentos SQL a serem executados pelo evento.
Exemplos de eventos ALTER do MySQL
Criaremos o mydb
banco de dados que contém uma messages
tabela:
CREATE DATABASE IF NOT EXISTS mydb;
USE mydb;
CREATE TABLE IF NOT EXISTS messages (
id INT AUTO_INCREMENT PRIMARY KEY,
message VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT NOW()
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução a seguir cria um evento que insere uma nova linha na messages
tabela a cada minuto.
CREATE EVENT test_event
ON SCHEDULE EVERY 1 MINUTE
DO
INSERT INTO messages(message)
VALUES('Test ALTER EVENT statement');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
1) Mudança de horário
O exemplo a seguir usa a ALTER EVENT
instrução para alterar o agendamento do test_event para fazer o evento ser executado a cada 2 minutos:
ALTER EVENT test_event
ON SCHEDULE EVERY 2 MINUTE;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Alterando o corpo do evento
O exemplo a seguir usa a ALTER EVENT
instrução para alterar o corpo do evento especificando a nova consulta após a DO
palavra-chave:
ALTER EVENT test_event
DO
INSERT INTO messages(message)
VALUES('New message');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode esperar 2 minutos e verificar as alterações recuperando os dados da messages
tabela:
SELECT * FROM messages;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Desativando um evento
O exemplo a seguir usa a ALTER EVENT
instrução para desabilitar test_event
:
ALTER EVENT test_event
DISABLE;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode verificar o status do evento usando a SHOW EVENTS
instrução a seguir:
SHOW EVENTS FROM mydb;
4) Habilitando um evento
O exemplo a seguir usa a ALTER EVENT
instrução para ativar um evento usando a ENABLE
palavra-chave:
ALTER EVENT test_event
ENABLE;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
5) Renomeando um evento
Para alterar o nome de um evento de um para outro, você pode usar a ALTER EVENT ... RENAME TO
instrução:
ALTER EVENT test_event
RENAME TO sample_event;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
6) Movendo um evento para outro banco de dados
A ALTER EVENT ... RENAME TO
instrução também permite mover um evento de um banco de dados para outro banco de dados:
ALTER EVENT mydb.sample_event
RENAME TO newdb.test_event;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Presume-se que o newdb
banco de dados esteja disponível em seu servidor de banco de dados MySQL.
Resumo
- Use MySQL
ALTER EVENT
para alterar os atributos de um evento.