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 une table après un certain temps


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 162
    Par défaut Supprimer une table après un certain temps
    Bonjour,
    je souhaite supprimer (DROP) une table Mysql après un certain temps de maintenant (des minutes ou des heures)

    J'ai réussi à créer une table avec PHP PDO mais je souhaite en même temps pouvoir la supprimer au bout de quelques heures ou quelques minutes de sa création (ex : 10 minutes ou 3 heures) en utilisant une requête PHP PDO.

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 340
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 340
    Billets dans le blog
    17
    Par défaut
    Je n'ose pas demander pourquoi tu as besoin de ce genre de manipulations

    Juste après création de la table $table_name, tu peux créer un EVENT de suppression :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = <<<SQL
        CREATE EVENT `drop_table_{$table_name}`
        ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 MINUTE -- Suppression dans 10 minutes
        ON COMPLETION NOT PRESERVE
        DO DROP TABLE `{$table_name}`;
        SQL;
     
    $pdo->exec($sql);

    https://dev.mysql.com/doc/refman/9.3...scheduler.html
    https://dev.mysql.com/doc/refman/9.3...ate-event.html
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 162
    Par défaut
    Merci SEB
    J'ai essayé mais cela ne marche pas. Sur les forums j'ai vu que cela peut venir du fait que MysQl n'accepte pas le "statement" "CREATE EVENT"

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 340
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 340
    Billets dans le blog
    17
    Par défaut
    Quel est le message d'erreur ?

    Il faut peut-être activer le scheduler => https://dev.mysql.com/doc/refman/9.3...iguration.html
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 617
    Billets dans le blog
    10
    Par défaut
    "ça ne marche pas" n'est pas un message d'erreur précis...
    Merci de communiquer le message d'erreur exact.

    En l'attente, vérifiez que avez bien le privilège requis pour faire le DROP de la table concernée.

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 162
    Par défaut
    En effet SEB, j'ai lancé une requête "SELECT @@event_scheduler" et la réponse MySql était "OFF"

    J'ai voulu activer le scheduler avec la requête "SET @@GLOBAL.event_scheduler = 1;"

    La réponse était ce message d'erreur : "#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation"

    Merci Escartefigue

  7. #7
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 162
    Par défaut
    J'ai oublié de dire que tous les événements sont toujours stockés dans MySql (en attente d'exécution). D'où l'absence de message d'erreur.

Discussions similaires

  1. [SQL-Server] Supprimer des données après un certains temps dépassé
    Par SHEYPT dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/12/2022, 14h15
  2. Couper une connexion après un certain temps d'inactivité.
    Par berceker united dans le forum JDBC
    Réponses: 1
    Dernier message: 25/11/2016, 11h43
  3. Détruire une session après un certain temps
    Par Seb2913 dans le forum Langage
    Réponses: 8
    Dernier message: 04/08/2015, 22h36
  4. Comment fermer une popup après un certains temps ?
    Par magic8392 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2005, 12h06
  5. Ouvrir une fenêtre et la fermer après un certain temps
    Par MiJack dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2005, 17h16

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