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

Requêtes MySQL Discussion :

TRUNCATE sur plusieurs tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de TwAzO
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Par défaut TRUNCATE sur plusieurs tables
    Bonjour les gens!

    Dans mon formulaire j'ai un bouton qui est censé remettre à 0 toutes les tables de ma base. Il y'a 7 tables donc j'ai essayé de mettre la requête sous la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $table1 = "t_x";
    $table2 = "t_xx";
    ...
     
    	$req = "TRUNCATE $table1, $table2, ..."; //Requete
    	$res = mysql_query($req);
    	echo "<script>alert('Tables remises à zéro')</script>";
    Essai infructueux mais je retente le coup avec une méthode plus barbare:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $table1 = "t_x";
    $table2 = "t_xx";
    ...
     
    	$req1 = "TRUNCATE $table1"; //Requete
    	$res1 = mysql_query($req1);
    	echo "<script>alert('Table1 remise à zéro')</script>";
     
            $req2 = "TRUNCATE $table2"; //Requete
    	$res2 = mysql_query($req2);
    	echo "<script>alert('Tables remise à zéro')</script>";
            ...
    Mais non ça ça marche pas non plus

    Est-ce que mysql est incapable de gérer plusieurs requêtes (ou plusieurs tables en une requête)?

    Merci de vos réponses!

  2. #2
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Je ne pense pas que cela soit possible donc il faudra effectivement répéter les truncates.

    Je conseillerais une petite procédure stocké qui te permettra de de simplifier un peu le coté applicatif.

    ca donnerais quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE PROCEDURE CLEAR_TABLES()
    BEGIN
         TRUNCATE TABLE laTable1;
         TRUNCATE TABLE laTable2;
         -- etc ...
    END;
    //
    Ensuite du coté de ton php tu pourras faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	$req = "CALL CLEAR_TABLES()"; //Requete
    	$res = mysql_query($req);
    	echo "<script>alert('Tables remises à zéro')</script>";
    PS : attention, on affiche généralement que tout c'est bien passé quand on a vérifier que l'on ne récupère aucun code d'erreur.

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    La 2eme méthode est la bonne
    par contre ce sont tes variables à revoir
    vu comme la requete est écrite, il doit chercher à supprimer les lignes de $table1 et non de t_x

    A+
    Michel

  4. #4
    Membre confirmé Avatar de TwAzO
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Par défaut
    Non non ça marche avec $table (même si '$table' est plus normalisé, je sais...)

    C'est la première fois que j'utilise une procédure, ça fait plaisir ^^

    Merci à tous et @++

  5. #5
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    il doit chercher à supprimer les lignes de $table1 et non de t_x
    Non il replace bien la variable puisqu'elle se trouve entre ""
    Plus de détails ici


    C'est la première fois que j'utilise une procédure, ça fait plaisir ^^
    félicitation

  6. #6
    Membre confirmé Avatar de TwAzO
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Par défaut
    Avec la procédure, j'ai un e erreur unexpected t_string à la première ligne.

    Voilà le message complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected T_STRING in C:\wamp\www\final\formulaires\razglob.php on line 10
    Si quelqu'un voit où est le bug...

    Merci ^^

  7. #7
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Peut-on voir la procédure ?

Discussions similaires

  1. TRUNCATE SUCCESSIF sur plusieurs tables
    Par Emile87 dans le forum Oracle
    Réponses: 8
    Dernier message: 07/12/2011, 13h08
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  3. order by sur plusieurs tables
    Par Mad_Max dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/12/2003, 12h17
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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