Maison > base de données > tutoriel mysql > Quelle est la différence entre les commandes MySQL TRUNCATE et DELETE ?

Quelle est la différence entre les commandes MySQL TRUNCATE et DELETE ?

WBOY
Libérer: 2023-09-12 14:13:02
avant
910 Les gens l'ont consulté

MySQL TRUNCATE 和 DELETE 命令有什么区别?

Comme nous le savons tous, TRUNCATE supprimera toutes les lignes sans supprimer la structure de la table de la base de données. La même chose peut être faite à l’aide de la commande DELETE pour supprimer toutes les lignes du tableau. Mais il existe des différences significatives dans la réinitialisation PRIMARY KEY AUTO_INCRMENT entre les deux commandes.

En supposant qu'une colonne est définie avec AUTO_INCRMENT avec PRIMARY KEY CONSTRAINT, alors la table d'initialisation ne sera pas réinitialisée lorsque toutes les lignes seront supprimées à l'aide de la commande DELETE, c'est-à-dire lorsqu'une nouvelle ligne est saisie, les numéros AUTO_INCREMENT commenceront après la dernière ligne insérée . En revanche, lors de l'utilisation de TRUNCATE, la table est réinitialisée comme une table nouvellement créée. Cela signifie qu'après avoir utilisé la commande TRUNCATE et inséré une nouvelle ligne, les nombres AUTO_INCRMENT commenceront à 1.

Exemple

L'exemple suivant démontrera le concept ci-dessus -

mysql> Create table Testing(Id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20));
Query OK, 0 rows affected (0.15 sec)

mysql> Insert into testing(Name) values('Gaurav'),('Rahul'),('Aarav'),('Yashraj'),('Manak');
Query OK, 5 rows affected (0.09 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+----+---------+
| Id | Name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Rahul   |
| 3  | Aarav   |
| 4  | Yashraj |
| 5  | Manak   |
+----+---------+

5 rows in set (0.00 sec)

mysql> Delete from testing where id >=4;
Query OK, 2 rows affected (0.04 sec)

mysql> Select * from testing;

+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Aarav  |
+----+--------+

3 rows in set (0.00 sec)

mysql> Insert into testing(Name) values('Harshit'),('Lovkesh');
Query OK, 2 rows affected (0.06 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+----+---------+
| Id | Name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Rahul   |
| 3  | Aarav   |
| 6  | Harshit |
| 7  | Lovkesh |
+----+---------+

5 rows in set (0.00 sec)

mysql> Truncate table testing;
Query OK, 0 rows affected (0.10 sec)

mysql> Insert into testing(Name) values('Harshit'),('Lovkesh'),('Ram'),('Gaurav');
Query OK, 4 rows affected (0.11 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+----+---------+
| Id | Name    |
+----+---------+
| 1  | Harshit |
| 2  | Lovkesh |
| 3  | Ram     |
| 4  | Gaurav  |
+----+---------+

4 rows in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal