J'utilise Wampserver 2.2. Lorsque je veux supprimer tous les enregistrements d'une table dans phpMyAdmin (tout sélectionner), il ne supprime qu'un seul enregistrement, pas tous les enregistrements. Pourquoi ne supprime-t-il pas tous les enregistrements?
Allez dans votre structure -> et faites le vide dans la table requise. Vois ici:
Vous avez 2 options delete
et truncate
:
delete from mytable
Cela supprimera tout le contenu de la table, sans réinitialiser l'identifiant auto-incrémental, ce processus est très lent. Si vous souhaitez supprimer des enregistrements spécifiques, ajoutez une clause where à la fin.
truncate myTable
Cela réinitialisera la table, c'est-à-dire que tous les champs incrémentiels automatiques seront réinitialisés. C'est un DDL et c'est très rapide. Vous ne pouvez supprimer aucun enregistrement spécifique via truncate
.
Allez sur l'onglet SQL lancez l'une des requêtes ci-dessous:
delete from tableName;
Supprimer : supprimera toutes les lignes de votre table. La prochaine insertion prendra le prochain identifiant d'incrémentation automatique.
ou
truncate tableName;
Truncate : supprimera également les lignes de votre table mais démarrera à partir d'une nouvelle ligne avec 1.
Un blog détaillé avec l'exemple: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
Utilisez cette requête:
DELETE FROM tableName;
Remarque: pour supprimer un enregistrement spécifique, vous pouvez également indiquer la condition de la clause where dans la requête.
OU vous pouvez également utiliser cette requête:
truncate tableName;
Rappelez-vous également que vous ne devriez avoir aucune relation avec une autre table. S'il y a une contrainte de clé étrangère dans la table, alors cet enregistrement ne sera pas supprimé et donnera l'erreur.
Vous pouvez supprimer toutes les lignes avec cette commande. Mais rappelez-vous qu’une fois que vous utilisez la commande troncature, vous ne pouvez pas l’annuler.
truncate tableName;
'Truncate tableName' échouera sur une table avec une contrainte de clé définie. De plus, il ne réindexera pas la valeur de la table AUTO_INCREMENT
. Au lieu de cela, supprimez toutes les entrées de la table et réinitialisez l'indexation sur 1 en utilisant la syntaxe SQL suivante:
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
Un fait intéressant.
J'étais persuadé que TRUNCATE fonctionnera toujours mieux, mais dans mon cas, pour une base contenant environ 30 tables avec des clés étrangères, contenant seulement quelques lignes, il fallait environ 12 secondes pour analyser toutes les tables, au lieu de quelques centaines de millisecondes. SUPPRIMER les lignes. Le réglage de l’incrément automatique ajoute environ une seconde au total, mais c’est beaucoup mieux.
Donc, je vous suggère d'essayer les deux, voir ce qui fonctionne plus rapidement pour votre cas.
écrire la requête: tronquer 'Votre_nom_table';