EVENTO DE ALTERAÇÃO MySQL

Resumo : neste tutorial, você aprenderá como usar o MySQL ALTER EVENTpara 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 EVENTinstrução. Aqui está a sintaxe básica da ALTER EVENTinstrução:

ALTER EVENT [IF EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
DO event_bodyLinguagem 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. Use PRESERVEpara manter o evento e NOT PRESERVEpara 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 mydbbanco de dados que contém uma messagestabela:

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 messagestabela 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 EVENTinstruçã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 EVENTinstrução para alterar o corpo do evento especificando a nova consulta após a DOpalavra-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 messagestabela:

SELECT * FROM messages;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

3) Desativando um evento

O exemplo a seguir usa a ALTER EVENTinstruçã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 EVENTSinstrução a seguir:

SHOW EVENTS FROM mydb;

4) Habilitando um evento

O exemplo a seguir usa a ALTER EVENTinstrução para ativar um evento usando a ENABLEpalavra-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 TOinstruçã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 TOinstruçã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 newdbbanco de dados esteja disponível em seu servidor de banco de dados MySQL.

Resumo

  • Use MySQL ALTER EVENTpara alterar os atributos de um evento.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *