English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL Vider le tableau (instruction TRUNCATE TABLE)

Dans ce tutoriel, vous apprendrez à utiliser SQL pour supprimer rapidement toutes les lignes d'une table.

supprimer les données de la table

La clause TRUNCATE TABLE est plus rapide que DELETE pour supprimer toutes les lignes d'une table. Logiquement, TRUNCATE TABLE est similaire àDELETEpasWHEREinstruction.

La clause TRUNCATE TABLE supprime toutes les lignes de la table, mais conserve la structure de la table et ses colonnes, contraintes, index, etc. Pour supprimer la table et ses données, vous pouvez utiliser cetteDROP TABLECette instruction, mais opérez prudemment.

Grammaire

Grammaire de base de TRUNCATE TABLE :

TRUNCATE TABLE table_name;

Laissez-nous exécuter une opération de vidage sur la table de base de données.

Considérons que nous avons dans notre base de donnéesemployeecontient les enregistrements suivants :

+--------+--------------+------------+--------+---------+
| emp_id | emp_name | hire_date | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 | NULL |
+--------+--------------+------------+--------+---------+

La commande suivanteemployeessupprimer toutes les lignes du tableau :

TRUNCATE TABLE employees;

Maintenant, après avoir exécuté les instructions SQL ci-dessus, si vous essayez de récupéreremployeedans le tableauchoisir des enregistrementsobtiendrez un ensemble de résultats vide.

TRUNCATE TABLE vs DELETE

Bien que DELETE et TRUNCATE TABLE semblent avoir un effet similaire, leur mode de fonctionnement est différent. Voici quelques différences principales entre ces deux instructions :

  • La clause TRUNCATE TABLE supprime et recrée la table, et réinitialise toute valeur de progression automatique à sa valeur initiale (généralement)1)

  • DELETE allows you to filter the rows to be deleted based on an optional WHERE clause, while TRUNCATE TABLE does not support the WHERE clause and simply deletes all rows.

  • Compared to DELETE, TRUNCATE TABLE is faster and uses fewer system resources, because DELETE scans the table to generate the number of affected rows, then deletes rows one by one, and records an entry in the database log for each deleted row, while TRUNCATE TABLE only deletes all rows without providing any other information.

Avis :Si vous souhaitez supprimer toutes les lignes et recréer l'ensemble du tableau, utilisez TRUNCATE TABLE. Si vous souhaitez supprimer un nombre limité de lignes basé sur une condition spécifique ou si vous ne souhaitez pas réinitialiser la valeur de progression automatique, utilisez DELETE.