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.

Était-ce utile?

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)

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top