IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Supprimer automatiquement des données qui datent dans une base de données


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut Supprimer automatiquement des données qui datent dans une base de données
    Bonjour,

    J'ai fait un petit formulaire qui demande : nom, prénom, date et heure (pour une personne qui a fait un événement en particulier)
    J'enregistre donc dans ma base de données ces informations.
    J'aimerais savoir s'il était possible de supprimer automatiquement (une tâche qui se lancerait tous les jours) les enregistrements qui datent de plus de 2 semaines par rapport à la date du jour.

    La base de données est installée sur un Windows Server et j'y accède depuis mon poste grâce à mySQL Workbench (est-ce que c'est ça le SGBD?)

    Je vous remercie

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web Full-Stack
    Inscrit en
    Mai 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web Full-Stack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Salut,

    Tu peux utiliser les événements planifié en SQL, voici la doc -> https://dev.mysql.com/doc/refman/5.7...ate-event.html

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut
    J'arrive à quelque chose comme
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE EVENT delTwoWeeks
    ON SCHEDULE
    EVERY 1 DAY
    DO
    DELETE FROM maTable WHERE DATEDIFF(CURDATE(), date) > 14;

    Donc là j'ai un événement qui s'appelle delTwoWeeks, qui doit se lancer tous les jours et qui exécute ma requête. Est-ce bien ça?
    Par contre, y a-t-il un moyen pour déterminer l'heure à laquelle ça se lance?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web Full-Stack
    Inscrit en
    Mai 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web Full-Stack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE EVENT delTwoWeeks
    ON SCHEDULE AT '2006-02-10 23:59:00' + INTERVAL 1 DAY
    DO DELETE FROM maTable WHERE DATEDIFF(CURDATE(), date) > 14;

    Je n'ai pas tester mais d'après la doc !

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut
    Oui j'avais vu cette partie, mais sans certitude.

    Mais le format c'est yyyy-dd-mm ou yyyy-mm-dd ?
    Et le + INTERVAL 1 DAY, ça ne va pas l'exécuter seulement demain? Fin je suppose que je le remplace par l'attribut EVERY.

    Merci

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web Full-Stack
    Inscrit en
    Mai 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web Full-Stack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Pour cela tu devras utiliser STARTS :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     CREATE EVENT example
    ON SCHEDULE EVERY 1 DAY
    STARTS CURRENT_TIMESTAMP // Cela veut dire aujourd'hui à cette heure actuelle : Tu pourras le remplacer par une heure qui te convient pour commencer l'exécution
    DO DELETE ...

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut
    Ah oui ça fonctionne mieux avec STARTS, effectivement

    Un grand merci!

    Je me demandais aussi, si par exemple un jour il n'arrive pas à exécuter l'événement (serveur éteint, ...), est-ce qu'il faut s'assurer de "relancer" l'événement ou il s'occupera de continuer à le lancer automatiquement les jours suivants?

  8. #8
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut
    Il semblerait que j'ai un autre problème :

    Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec
    J'ai eu le même cas hier en voulant exécuter la requête de suppression, j'ai dû utiliser ça avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET SQL_SAFE_UPDATES = 0;
    Est-ce que dans mon événement je peux mettre ça comme ça? Il semblerait qu'il faille que j'utiliser cette requête de "réinitialisation" de la variable globale à chaque fois
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE EVENT DeleteEveryTwoWeeks
    ON SCHEDULE EVERY 1 DAY
    STARTS '2019-12-05 08:00:00'
    DO
    SET SQL_SAFE_UPDATES = 0;
    DELETE FROM maTable WHERE DATEDIFF(CURDATE(), date) > 14;

    A moins qu'il y ait une autre solution?

    Merci

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web Full-Stack
    Inscrit en
    Mai 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web Full-Stack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Je te conseille de créer une nouvelle discussion pour ton problème.

  10. #10
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut
    Je ne comprends pas pourquoi?

    C'est en fait un problème que j'ai partiellement résolu et qui est en relation avec le sujet initial, je demande juste une clarification là-dessus et notamment s'il est possible d'exécuter 2 requêtes distinctes dans un événement ou si éventuellement il y a quelque chose de plus optimisé

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web Full-Stack
    Inscrit en
    Mai 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web Full-Stack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Je ne suis pas expert du domaine, je n'ai fait que de te fournir une information que j'avais. Par ailleurs je t'inviterais à créer ton sujet dans le forum dédié aux base de données SQL : https://www.developpez.net/forums/f3...s/langage-sql/

    Pour ainsi avoir plus de réponses à ton problème de personnes de ce domaine !

  12. #12
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 141
    Points : 73
    Points
    73
    Par défaut
    Ah oui effectivement, je m'étais orienté ici car à la base ça part d'un formulaire php

    Excusez-moi

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web Full-Stack
    Inscrit en
    Mai 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web Full-Stack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Sans soucis ! Pensez à mettre le sujet en résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/02/2010, 21h32
  2. Réponses: 4
    Dernier message: 26/03/2008, 09h43
  3. Insertion des images et vidéos dans une base de données
    Par taouja dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/04/2007, 13h31
  4. Réponses: 2
    Dernier message: 16/02/2006, 23h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo