Le documentation on CREATE EVENT est assez bon, mais il faut du temps pour le faire correctement.
Vous avez deux problèmes, d'abord, rendre l'événement se reproduise, en second lieu, faisant fonctionner à 13h00 tous les jours.
Cet exemple crée un événement récurrent.
CREATE EVENT e_hourly
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Clears out sessions table each hour.'
DO
DELETE FROM site_activity.sessions;
Lorsque dans le client MySQL en ligne de commande, vous pouvez:
SHOW EVENTS;
Cette liste chaque événement avec ses métadonnées, comme si elle doit fonctionner une seule fois, ou être récurrente.
Le deuxième problème: pointant l'événement récurrent vers un élément de planification spécifique.
en essayant différents types d'expression, nous pouvons arriver à quelque chose comme:
CREATE EVENT IF NOT EXISTS `session_cleaner_event`
ON SCHEDULE
EVERY 13 DAY_HOUR
COMMENT 'Clean up sessions at 13:00 daily!'
DO
DELETE FROM site_activity.sessions;
Cela ne fonctionne pas pour moi!. J'ai essayé avec 10 DAY_HOUR et il a simplement exécuté immédiatement et programmé lui-même. Je ne vois pas non plus pourquoi. En lisant les documents MySQL, DAY_HOUR est un moyen de spécifier des jours et des heures à partir de maintenant - c'est toujours un intervalle. Ou ai-je complètement mal compris? – Adam
D'accord avec @Adam. Cela ne semble pas répondre à l'exigence de courir tous les jours à 13 heures. Sur la base de quelques tests rapides, je pense qu'il finirait par exécuter toutes les 13 heures. 'select current_timestamp() , date_add (current_timestamp(), intervalle 13 day_hour);' – Phil