Maison >base de données >tutoriel mysql >Comment supprimer automatiquement les enregistrements MySQL après sept jours ?

Comment supprimer automatiquement les enregistrements MySQL après sept jours ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-27 14:17:11759parcourir

How to Automatically Delete MySQL Records After Seven Days?

Suppression des enregistrements MySQL après une durée

Dans cet article, nous aborderons le problème de la suppression des enregistrements d'une base de données MySQL après un intervalle de temps spécifié.

Problème :

Messages dans une table MySQL avec "id", Les colonnes « message » et « date » doivent être supprimées après sept jours. Les dates sont spécifiées au format « AAAA-MM-JJ HH:MM:SS ». Il est proposé d'utiliser un événement MySQL plutôt qu'une tâche cron pour ce processus de suppression.

Requête :

La requête ci-dessous inclut une condition révisée pour supprimer les messages datant de plus de 7 ans. jours :

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;

Clarification :

Au lieu d'utiliser la condition suggérée dans la question ("DELETE messages WHERE date >= (la date actuelle - 7 jours)"), nous utilisons "WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)". Cela garantit que les messages datant d'exactement 7 jours sont supprimés, alors que la condition précédente ne les supprimerait pas.

Recommandation :

Bien que les événements MySQL puissent être utilisés pour cela Dans ce but, l'utilisation d'un simple script cron est également une option valable. Il offre une maintenance plus facile, évite les solutions de contournement SQL complexes et s'intègre parfaitement au 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