MySQL 5.6 - Créer un événement dans une procédure stockée
-
29-09-2020 - |
Question
J'essaie de créer une procédure qui crée un événement dans MySQL.
Par exemple, quelque chose de similaire à celui-ci:
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 ;
Mais cela me donne une erreur suivante lorsque j'essaie de créer cette procédure.
ERROR 1576 (HY000): Recursion of EVENT DDL statements is forbidden when body is present
Si je comprends bien, MySQL permet aux procédures stockées d'avoir créé une instruction SQL d'événement à l'intérieur.(Devis de https://dev.mysql.com/doc/Refman / 5.6 / fr / Create-Event.html "Vous pouvez créer un événement dans le cadre d'une routine stockée, mais un événement ne peut pas être créé par un autre événement")
Pourriez-vous s'il vous plaît laissez-moi savoir quelle est l'erreur ici?
merci.
La solution
Il semble qu'il y ait un conflit dans la documentation de MySQL. Je pense Créer une syntaxe d'événement section dans la documentation MySQL n'est pascorrectement mis à jour dans les versions ultérieures.Bien que «créer des sections de syntaxe d'événement» indique
Vous pouvez créer un événement dans le cadre d'une routine stockée, mais un événement ne peut pas être créé par un autre événement.
dans événementRestrictions de planificateur section dans la documentation MySQL, Il dit
Un événement peut ne pas être créé , modifié ou déposé
par une routine stockée , déclencheur, ou un autre événement.Un événement peut également ne pas créer, modifier ou gouttes routines stockées ou déclencheurs.(Bug # 16409, bogue n ° 18896)