Bonjour,
J'ai table "historique" que je veux vider avant d'y mettre des nouvelles données.
Après recherche j'ai vu alter_table et drop_table mais j'ai l'impression que ça supprime la table!!
Moi je veux seulement la vider.
Merci de votre aide
Bonjour,
J'ai table "historique" que je veux vider avant d'y mettre des nouvelles données.
Après recherche j'ai vu alter_table et drop_table mais j'ai l'impression que ça supprime la table!!
Moi je veux seulement la vider.
Merci de votre aide
essaye "TRUNCATE"
Merci.
J'ai mis : TRUNCATE table beahistorique; mais j'ai une erreur
tu veux en fait supprimer tous les enregistrements de ta table pour en insérer de nouveaux ?J'ai table "historique" que je veux vider avant d'y mettre des nouvelles données
Si c'est bien ça alors TRUNCATE me semble trop fort et un simple DELETE (sans filtre) devrait suffire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM HISTORIQUE;
le message d'erreur:
Cela correspond à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Parse error: parse error, unexpected T_STRING in c:\weblocal\sites\test\portefeuille\maj_historique.php on line 9
Pourquoi TRUNCATE est trop fort?
Code : Sélectionner tout - Visualiser dans une fenêtre à part TRUNCATE table beahistorique;
![]()
Ca ira mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sql = "TRUNCATE TABLE ma_table"; mysql_query($sql) or die(mysql_error());![]()
D'après ce qu'on m'a expliqué : TRUNCATE détruit les données d'une table sans condition possible et surtout sans possibilité de faire un rollback. Hormis ces différences, TRUNCATE ne semble pas présenter de différence par rapport à DELETE (?).
C'est pour ça que dans ce contexte, DELETE est suffisant s'il s'agit simplement de supprimer toutes les lignes d'une table.
Mais peut être pourriez-vous m'en dire plus sur la raison qui vous fait choisir DELETE plutôt que TRUNCATE (moi qui venait pour aider je vais apprendre des choses génial) ?
Bonjour, Je ne suis pas un expert en sql, mais je dirai que le DELETE est utiliser pour supprimer un enregistrement (ou plusieurs ou tous) dans une table, selon la requête, et n'aura aucune incidence sur les autres ni sur la table, je pense aux index. Alors qu'un TRUNCATE va effacer tous les enregistrements, mais réinitialiser également les index, en fait comme si elle venait d'être créée.
Fait le test avec un DELETE sur tout dans ta base, puis si je ne me trompe pas, lorsque tu feras un nouvel enregistrement (si tu as des id autoincrémentés), ils ne débuteront pas à 1 mais à l'ancien MAXID + 1.
Si j'ai dit une bétise merci de me le dire.
Merci beaucoup, ça fonctionne niquel.
Les index sont bien réinitialisés avec le truncate.
Merci![]()
Partager