Pregunta

Estoy tratando de crear un procedimiento que cree un evento en MySQL.

Por ejemplo, algo similar a esto:

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 ;

Pero me da un error de seguimiento cuando intento crear este procedimiento.

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

Como entiendo MySQL permite que los procedimientos almacenados hayan creado una declaración SQL del evento dentro.(Cotización de https://dev.mysql.com/doc/Refman / 5.6 / ES / Create-event.html "Puede crear un evento como parte de una rutina almacenada, pero otro evento no puede ser creado por otro evento")

¿Podrías hacerme saber cuál es el error aquí?

gracias.

¿Fue útil?

Solución

Parece que hay un conflicto en la documentación de MySQL. Creo que crear sintaxis de evento sección en la documentación de MySQL no escorrectamente actualizado en versiones posteriores.Aunque las secciones "Crear sintaxis de eventos" dicen

Puede crear un evento como parte de una rutina almacenada, pero un evento no puede ser creado por otro evento.

en eventoRestricciones de programador sección en la documentación de MySQL, Dice

Un evento puede no ser creado , alterado o caído por una rutina almacenada , disparador u otro evento.Un evento también puede no crear, alterar o Drop rutina almacenada o desencadenantes.(Error # 16409, error # 18896)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top