MySQL 5.6 - Creación de un evento dentro de un procedimiento almacenado
-
29-09-2020 - |
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.
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)