22 Voix

MySQL: Supprimer Données de Table - Différence entre TRUNCATE, DELETE et DROP

Tutoriel de Stefan Trost | 30/11/2022 à 19:32

Dans ce petit tutoriel, nous voulons avoir un aperçu de plus près de la différence entre les commandes MySQL TRUNCATE, DELETE et DROP. Les trois commandes ont à voir avec la suppression des données des tables ou la suppression de tables entières.

Le tutoriel est divisé en les sections suivantes:

DELETE: Suppression des enregistrements individuels

La commande la plus connue est DELETE. Avec DELETE, il est possible de supprimer des enregistrements individuels d'une table. Nous avons ici un exemple:

DELETE FROM tab WHERE id = 2;
DELETE FROM tab WHERE id < 7;
DELETE FROM tab WHERE nom = 'Anton';
DELETE FROM tab WHERE nom LIKE '%abc%';

Ce sont quatre instructions MySQL que chacun supprime les enregistrements du tableau "tab" en fonction de certains critères. La première commande supprime l'enregistrement avec l'ID 2, la deuxième commande tous les enregistrements qui ont un ID inférieur à 7, et la troisième commande supprime l'enregistrement ou les enregistrements dans lesquels la colonne "nom" est égale à "Anton" respectivement ne contient que "Anton". Après tout, la dernière commande supprime tous les enregistrements dans lesquels la colonne "nom" contient la chaîne "abc".

Dans tous ces exemples, nous avons décrit en détail quels enregistrements devraient être supprimés derrière WHERE. Mais nous pouvons également omettre la déclaration WHERE:

DELETE FROM tab;

Cette instruction n'a aucune limitation selon quels critères les enregistrements doivent être supprimés. Par conséquent, tous les enregistrements de la table seront perdus irresibles. La table entière est vide après cette requête.

Différence entre TRUNCATE et DELETE

Aussi avec la commande TRUNCATE, tous les enregistrements d'une table sont supprimés. Vous pouvez utiliser cette commande de la manière suivante:

TRUNCATE TABLE tab;

Cette commande supprime également toutes les données de façon permanente du tableau "tab" et, par conséquent, l'effet de cette instruction est identique à "DELETE FROM tab". Cependant, la mise en œuvre technique est différente. Pendant la suppression avec DELETE, chaque enregistrement de la table sera supprimé individuellement, tandis que TRUNCATE a une approche différente: TRUNCATE supprime d'abord le tableau entier, y compris les définitions des colonnes et alors crée un nouveau tableau vide identique sans données.

En conséquence, TRUNCATE est beaucoup plus rapide que l'instruction DELETE. En outre, dans la nature des choses réside comment les deux commandes de la suppression traitent les colonnes AUTO_INCREMENT. TRUNCATE réinitialise la valeur AUTO_INCREMENT à 1, car l'ensemble du tableau est reconstruit, tandis que DELETE ne fait aucune réinitialisation et la colonne sera en comptant là où elle a été arrêtée. Par conséquent, si vous souhaitez conserver votre valeur AUTO_INCREMENT, vous devez compter - malgré les performances assez mauvaises - sur DELETE.

Suppression d'une table complète avec DROP

La dernière commande que nous examinerons s'appelle DROP:

DROP TABLE tab;
DROP TABLE tab1, tab2;
DROP TABLE IF EXISTS tab1, tab2;

DROP élimine toute la table, y compris toutes les données et les définitions des colonnes de la table. Ainsi, après avoir effectué une commande DROP, toute la table aura disparu et ne peut pas être récupérée. En revanche, DELETE et TRUNCATE ne suppriment que les données du tableau, tandis que les définitions du tableau restent.

Vous pouvez utiliser DROP comme indiqué dans l'exemple. Avec la première ligne, l'ensemble du tableau "tab" est supprimé, avec la deuxième ligne, vous pouvez voir comment supprimer plusieurs tables simultanément dans une seule instruction. Dans la troisième ligne, "IF EXISTS" (si existe) est ajouté. Cette amélioration garantit qu'aucun message d'erreur n'apparaît lorsque vous essayez de supprimer un tableau qui n'existe pas.

Avertissement

Vous devez gérer les commandes DELETE, TRUNCATE et DROP très attentivement, car les enregistrements ou toute la table ne peuvent pas être restaurés après la suppression. Veuillez vous assurer que vous n'avez plus besoin des données et faire toujours une sauvegarde de votre base de données avant d'utiliser les commandes comme précaution.

Sinon, la seule chose que vous pouvez faire est de créer une nouvelle colonne à nouveau.

RépondrePositifNégatif

Sur l’Auteur

AvatarVous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil

 

Sujets Connexes

CSS: Comment inclure CSS dans HTML

Tutoriel | 0 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.