CREATE EVENT
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
).