J'utilise wampserver 2.2. Lorsque je veux supprimer tous les enregistrements d'une table dans phpMyAdmin (select all), il ne supprime qu'un seul enregistrement et non tous les enregistrements. Pourquoi ne supprime-t-il pas tous les enregistrements ?
Réponses
Trop de publicités?L'opération 'Tuncate tableName' échouera. sur une table avec une contrainte de clé définie. Il ne réindexera pas non plus la table AUTO_INCREMENT
valeur. Au lieu de cela, supprimez toutes les entrées de la table et remettez l'indexation à 1 en utilisant cette syntaxe sql :
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
Un fait intéressant.
Je pensais que TRUNCATE serait toujours plus performant, mais dans mon cas, pour une base de données d'environ 30 tables avec des clés étrangères, peuplées de quelques lignes seulement, il a fallu environ 12 secondes pour TRUNCATE toutes les tables, contre seulement quelques centaines de millisecondes pour DELETE les lignes. Le réglage de l'incrémentation automatique ajoute environ une seconde au total, mais c'est quand même beaucoup mieux.
Je vous suggère donc d'essayer les deux, pour voir lequel fonctionne le plus rapidement dans votre cas.
- Visiter phpmyadmin
- Sélectionnez votre base de données et cliquez sur la structure
- En face de votre table, vous pouvez voir Vide Cliquez sur ce bouton pour effacer toutes les entrées du tableau sélectionné.
Ou vous pouvez faire la même chose en utilisant une requête sql :
Cliquez sur SQL présents aux côtés de Structure
TRUNCATE tablename; //offers better performance, but used only when all entries need to be cleared
or
DELETE FROM tablename; //returns the number of rows deleted
Se référer à DELETE y TRUNCATE pour une documentation détaillée
- Réponses précédentes
- Plus de réponses