Supprimer tous les enregistrements dans une table de MYSQL dans phpMyAdmin


122

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 et non tous les enregistrements. Pourquoi ne supprime-t-il pas tous les enregistrements?


3
dépend de votre requête, avez-vous exécuté comme ça? DELETE FROM tableName
John Woo

Mettez en surbrillance le nom de la table et appuyez surSHIFT-DEL
DevlshOne

Réponses:


130

Allez dans votre structure db -> et videz le tableau requis. Vois ici:

cette capture d'écran


167

Vous avez 2 options deleteet truncate:

  1. delete from mytable

    Cela supprimera tout le contenu de la table, sans réinitialiser l'identifiant auto-incrémentiel, ce processus est très lent. Si vous souhaitez supprimer des enregistrements spécifiques, ajoutez une clause where à la fin.

  2. 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.


130

Accédez à l'onglet Sql, exécutez l'une des requêtes ci-dessous:

delete from tableName;

Supprimer : supprimera toutes les lignes de votre tableau. La prochaine insertion prendra le prochain identifiant d'incrémentation automatique.

ou

truncate tableName;

Tronquer : supprimera également les lignes de votre tableau mais il commencera à partir de la nouvelle ligne avec 1.

Un blog détaillé avec un exemple: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/


27

Utilisez cette requête:

DELETE FROM tableName;

Remarque: pour supprimer un enregistrement spécifique, vous pouvez également indiquer la condition dans la clause where dans la requête.

OU vous pouvez également utiliser cette requête:

truncate tableName;

Souvenez-vous également que vous ne devez avoir aucune relation avec une autre table. S'il y a une contrainte de clé étrangère dans la table, ces enregistrements ne seront pas supprimés et donneront l'erreur.


19

Vous pouvez supprimer toutes les lignes avec cette commande, mais rappelez-vous une chose qu'une fois que vous exécutez la commande tronquer, vous ne pouvez pas la restaurer.

  truncate tableName;

11

«Tronquer tableName» échouera sur une table avec une contrainte de clé définie. Il ne réindexera pas non plus la AUTO_INCREMENTvaleur de la table . Au lieu de cela, supprimez toutes les entrées de table et réinitialisez l'indexation à 1 à l'aide de cette syntaxe SQL:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

Un fait intéressant.

J'étais sûr que TRUNCATE fonctionnera toujours mieux, mais dans mon cas, pour une base de données avec environ 30 tables avec des clés étrangères, peuplée de seulement quelques lignes, il a fallu environ 12 secondes pour TRUNCATE toutes les tables, par opposition à seulement quelques centaines de millisecondes pour SUPPRIMER les lignes. Le réglage de l'incrémentation automatique ajoute environ une seconde au total, mais c'est toujours beaucoup mieux.

Je suggère donc d'essayer les deux, de voir ce qui fonctionne le plus rapidement pour votre cas.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.