MySQL 5.6 - Создание события внутри сохраненной процедуры
-
29-09-2020 - |
Вопрос
Я пытаюсь создать процедуру, которая создает событие в MySQL.
Например, что-то похожее на это:
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 ;
.
Но это дает мне последую ошибки, когда я пытаюсь создать эту процедуру.
ERROR 1576 (HY000): Recursion of EVENT DDL statements is forbidden when body is present
.
Как я понимаю MySQL, разрешит хранить процедуры, чтобы создать событие SQL-заявление внутри.(Цитата из https://dev.mysql.com/doc/Refman / 5.6 / ru / create-event.html "Вы можете создать событие как часть сохраненной рутины, но событие не может быть создано другим событием«)
Не могли бы вы дать мне знать, что здесь ошибка?
спасибо.
Решение
Кажется, есть конфликт в документации MySQL. Я думаю, что Создание синтаксиса событий Раздел в документации MySQL неправильно обновлен в более поздних версиях.Хотя разделы «Create Event Syntax» говорится
Вы можете создать событие как часть хранимой рутины, но событие не может быть создан другим событием.
в Ограничения планировщиков Раздел в MySQL Документация, Он говорит
Мероприятие
может быть не создано , изменено или упало хранимой рутиной , триггер или другое событие.Событие также может не создавать, изменять или падение хранимых процедуров или триггеров.(Ошибка # 16409, ошибка # 18896)