MySQL 5.6 - Создание события внутри сохраненной процедуры

dba.stackexchange https://dba.stackexchange.com/questions/121434

Вопрос

Я пытаюсь создать процедуру, которая создает событие в 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)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top