CREATE EVENT

You are viewing an old version of this article. View the current version here.

Sintaxe

CREATE [OR REPLACE]
    [DEFINER = { user | CURRENT_USER | role | CURRENT_ROLE }]
    EVENT 
    [IF NOT EXISTS]
    event_name    
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT 'comment']
    DO sql_statement;

schedule:
    AT timestamp [+ INTERVAL interval] ...
  | EVERY interval 
    [STARTS timestamp [+ INTERVAL interval] ...] 
    [ENDS timestamp [+ INTERVAL interval] ...]

interval:
    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

Descrição

Esta instrução cria e programa um novo evento. Isto requer o privilégio EVENT para o esquema no qual irá ser criado o evento.

Os requerimentos mínimos para uma instrução valida CREATE EVENT são os seguintes:

  • As palavras-chave CREATE EVENT mais um nome de evento, o qual identifica de forma única o evento no esquema atual. (Antes do MySQL 5.1.12, o nome do evento precisava ser único apenas entre os eventos criados pelo mesmo usuário num banco de dados dado.)
  • Uma cláusula ON SCHEDULE, a qual determina quando e quantas vezes executa-se o evento.
  • Uma cláusula DO, a qual contém a instrução SQL a ser executada pelo evento

Aqui temos um exemplo de uma instrução CREATE EVENT mínima:

CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
    DO
      UPDATE myschema.mytable SET mycol = mycol + 1;

A instrução anterior cria um evento chamado myevent. Este evento se executa uma vez, após uma hora da sua criação, executando uma instrução SQL que incrementa o valor da coluna mycol na tabela myschema.mytable em 1.

O event_name deve ter um identificador válido MySQL com um comprimento máximo de 64 caracteres. Este pode ser delimitado usando aspas inversas, e pode ser qualificado com o nome de um esquema de banco de dados. Um evento está associado com ambos, o usuário MySQL (o definidor) e o esquema, e seu nome deve ser único entre os nomes dos eventos nesse esquema. Em geral, as regras que governam os nomes de eventos são as mesmas que aquelas para os nomes de rotinas armazenadas. Veja http://dev.mysql.com/doc/refman/5.1/en/identifiers.html.

Se nenhum esquema for indicado como parte de event_name, o esquema padrão (o atual) é assumido.

Os eventos estão habilitados (ENABLE) por padrão. Se você quiser evitar que o MariaDB execute um evento, você pode especificar DISABLE. Quando estiver pronto para ser ativado, você pode habilitá-lo usando ALTER EVENT. Outra opção é DISABLE ON SLAVE, que impede a servidores escravos executar o evento.

A cláusula COMMENT pode ser usada para definir um comentário para o evento. O comprimento máximo para os comentários é de 64 caracteres. O comentário é um string, portanto deve ir entre aspas. Para ver comentários de eventos, você pode consultar a tabela EVENTS em INFORMATION_SCHEMA (a coluna é chamada EVENT_COMMENT).

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.