Pergunta

Eu estou tentando criar um procedimento que criar um evento no MySQL.

Por exemplo, algo semelhante a isto:

delimiter //
CREATE PROCEDURE schedule_my_db_job() 
  BEGIN

    CREATE EVENT MY_DB_JOB 
    ON SCHEDULE EVERY 1 MINUTE DO 
    BEGIN 
        SELECT * FROM information_schema.events; -- for example
    END;      

  END//
delimiter ;

Mas ele me dá o seguinte erro quando tento criar este procedimento.

ERROR 1576 (HY000): Recursion of EVENT DDL statements is forbidden when body is present

Como eu entendo o MySQL permitir procedimentos armazenados para ter de CRIAR EVENTO instrução sql dentro.(Citação da https://dev.mysql.com/doc/refman/5.6/en/create-event.html "Você pode criar um evento como parte de uma rotina, mas um evento não pode ser criado por um outro evento")

Você poderia por favor deixe-me saber o que está o erro aqui?

Obrigado.

Foi útil?

Solução

Parece que há um conflito na documentação do MySQL.Eu acho CRIAR Sintaxe do EVENTO a secção de documentação do MySQL não é atualizado corretamente em versões posteriores.Apesar de "CRIAR EVENTO Sintaxe" seções diz

Você pode criar um evento como parte de uma rotina, mas um evento não pode ser criado por outro evento.

No Evento Programador De Restrições a secção de documentação do mysql, Ele diz

Um o evento não pode ser criado, alterado ou descartado por um armazenadas rotina, gatilho, ou outro evento.Um evento também não poderá criar, alterar, ou drop armazenados rotinas ou gatilhos.(Bug #16409, O Bug #18896)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top