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 ne vide pas la table


Sujet :

Requêtes MySQL

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut Truncate ne vide pas la table
    Bonjour,

    je souhaite vider une table. Comme celle-ci est mère d'autres tables (clés étrangères), je commence par supprimer la vérification des clés étrangères :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SET FOREIGN_KEY_CHECKS = 0; 
    truncate t_us_user;
    SET FOREIGN_KEY_CHECKS = 1;
    J'utilise MySQLWorkbench. Ces commandes se passent bien (pas de message d'erreur) et pourtant, ensuite, la table n'est pas vide...Ce qui est curieux, c'est que à chaque fois que j'exécute le truncate puis regarde le contenu de la table avec SELECT * FROM t_us_user;, le contenu change et semble cohérent (par exemple, il y a une colonne user_email devant contenir une adresse email, et on y trouve bien une adresse email mais jamais la même).
    Si quelqu'un peut m'orienter vers une explication, je suis preneur...

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    j'ai résolu la question en supprimant la table puis en la recréant.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 957
    Points : 4 386
    Points
    4 386
    Par défaut
    La syntaxe n’est-elle pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    truncate table table_name
    Seriez-vous passer un peu vite sur le message d’erreur censé être renvoyé?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    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 338
    Points : 39 737
    Points
    39 737
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Bonsoir,
    j'ai résolu la question en supprimant la table puis en la recréant.
    Attention ce n'est pas du tout la même chose :
    Supprimer la table supprime également tous les objets dépendants (vues, index, trigger...), alors que TRUNCATE ne fait qu'un vidage.

  5. #5
    Membre expérimenté Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 490
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Attention ce n'est pas du tout la même chose :
    Supprimer la table supprime également tous les objets dépendants (vues, index, trigger...), alors que TRUNCATE ne fait qu'un vidage.
    Les vues ne sont pas supprimées mais elles référencent un objet disparu dans ce cas. Si la table est recréée, il n'y a plus de problème.

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Attention ce n'est pas du tout la même chose :
    Supprimer la table supprime également tous les objets dépendants (vues, index, trigger...), alors que TRUNCATE ne fait qu'un vidage.
    Merci pour la remarque ; dans mon cas, y a aucun de ces objets, donc ça revenait bien au même (même si effectivement, je m'étais aussi trompé de syntaxe).

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Merci d'avoir déplacé la discussion ; je m'étais trompé...

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

Discussions similaires

  1. Oracle 11gR2 exp n'exporte pas certaines tables vides
    Par ludwi dans le forum Import/Export
    Réponses: 3
    Dernier message: 04/11/2010, 16h27
  2. Si la table est vide pas possible d ajouter une valeur
    Par neuneu1 dans le forum Bases de données
    Réponses: 6
    Dernier message: 22/09/2008, 19h04
  3. supprimer un enregistrement vide dans une table oracle
    Par shurized dans le forum Bases de données
    Réponses: 11
    Dernier message: 07/09/2004, 16h55
  4. Update de date vide dans une table
    Par gidebo dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2004, 16h48
  5. [conception] champs vides ou plusieurs tables ?
    Par in dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 17/02/2004, 08h41

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