Maison  >  Article  >  base de données  >  Pourquoi la création de mon événement MySQL échoue-t-elle avec le message « Vous avez une erreur dans votre syntaxe SQL » ?

Pourquoi la création de mon événement MySQL échoue-t-elle avec le message « Vous avez une erreur dans votre syntaxe SQL » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-09 22:47:02728parcourir

Why Is My MySQL Event Creation Failing with

Dépannage des erreurs d'événements MySQL à l'aide de PHP

Erreur d'origine :

Lors de la tentative de création d'un événement MySQL à l'aide d'un script PHP , une erreur s'est produite :

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER' at line 1 

Solution :

Le message d'erreur indique que la syntaxe utilisée pour créer l'événement est incorrecte. La syntaxe correcte pour créer un événement est :

CREATE EVENT event_name
ON SCHEDULE [EVERY | AT] schedule
[ON COMPLETION [PRESERVE | NOT PRESERVE]]
DO
  statement(s);

Dans l'erreur d'origine, l'instruction "DELIMITER" a été utilisée de manière incorrecte. La syntaxe correcte serait :

CREATE EVENT myevent21222
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
DO
  BEGIN
    UPDATE `team` SET `reg` = '0' WHERE `id` = '1';
  END

Alternative pour modifier les données de la base de données après 5 minutes :

Si l'utilisation d'un événement pour modifier les données de la base de données n'est pas une option, il y a Il existe d'autres moyens d'obtenir cette fonctionnalité :

  • Tâche Cron : Créez une tâche cron qui exécutera l'instruction SQL nécessaire toutes les 5 minutes.
  • Service d'arrière-plan : Développer un service d'arrière-plan qui sera chargé de surveiller la base de données et d'effectuer les mises à jour nécessaires en cas de besoin.
  • Déclencheur : Configurer un déclencheur sur la table qui exécutera l'instruction SQL nécessaire lorsque la condition spécifiée est remplie (par exemple, 5 minutes après une action de l'utilisateur).

Activation du gestionnaire d'événements :

Pour garantir que les événements sont exécutés, le gestionnaire d'événements doit être activé à l'aide de l'instruction suivante :

SET GLOBAL event_scheduler = ON;

Vous pouvez confirmer que le gestionnaire d'événements est activé en vérifiant la valeur de la variable 'event_scheduler' :

SHOW VARIABLES WHERE VARIABLE_NAME='event_scheduler';

Remarques supplémentaires :

  • La clause ON COMPLETION spécifie ce qui doit se passer une fois l'exécution de l'événement terminée. L'option PRESERVE signifie que l'événement continuera d'exister après son exécution, tandis que l'option NOT PRESERVE signifie que l'événement sera supprimé une fois son exécution terminée.
  • L'instruction ALTER EVENT peut être utilisée pour désactiver ou activer un événement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn