Maison >base de données >tutoriel mysql >Comment puis-je supprimer automatiquement les anciens enregistrements MySQL à l'aide d'événements ?

Comment puis-je supprimer automatiquement les anciens enregistrements MySQL à l'aide d'événements ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 19:08:10784parcourir

How Can I Automatically Delete Old MySQL Records Using Events?

Suppression des enregistrements MySQL après une heure spécifiée avec un événement

Pour supprimer automatiquement les messages datant de plus de 7 jours d'une base de données MySQL, envisagez cette alternative approche à l'aide d'un événement :

CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO BEGIN
  DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;

Cet événement s'exécutera tous les jours, à l'heure spécifiée, et supprimera tous les messages dont la colonne de date est antérieure à 7 jours.

Voici une explication du code :

  • CREATE EVENT : crée un nouvel événement avec le nom spécifié (delete_event).
  • ON SCHEDULE AT CURRENT_TIMESTAMP INTERVAL 1 JOUR : Planifie l'événement pour qu'il se déroule une fois par jour, en commençant par le horodatage.
  • ON COMPLETION PRESERVE : garantit que l'événement continue de s'exécuter même s'il rencontre une erreur.
  • DO BEGIN : ​​démarre l'exécution de l'événement.
  • SUPPRIMER les messages .. .: Supprime les lignes de la table des messages en fonction de la condition spécifiée. Dans ce cas, il supprime les messages dont la colonne de date date de plus de 7 jours.
  • WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY) : utilise la fonction DATE_SUB() pour soustraire 7 jours de la date actuelle (NOW()) et la compare à la valeur de la colonne de date.
  • END ; : termine le l'exécution de l'événement.

Vous pouvez également utiliser un script cron pour effectuer cette tâche. Cependant, l'avantage d'utiliser un événement est qu'il peut être configuré pour s'exécuter indépendamment du planificateur cron du système.

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