Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

Déclaration MySQL TRUNCATE TABLE

L'instruction `TRUNCATE TABLE` de MySQL est utilisée pour supprimer toutes les lignes d'un tableau, le remettant ainsi à l'état vide. Contrairement à `DELETE`, il effectue cette opération rapidement en désallouant les pages de données utilisées par le tableau.

Utilisation

L'instruction `TRUNCATE TABLE` est utilisée lorsque vous avez besoin de supprimer rapidement toutes les données d'un tableau sans enregistrer les suppressions de lignes individuelles. Elle est souvent utilisée pendant le développement ou lors de la réinitialisation des tableaux pour les environnements de test.

TRUNCATE TABLE table_name;

Dans cette syntaxe, `TRUNCATE TABLE nom_de_table` spécifie le tableau dont tous les tableaux seront supprimés. Notez que `TRUNCATE TABLE` est une opération DDL (Data Definition Language) et qu'elle valide implicitement la transaction, ce qui signifie que ses effets sont immédiats et ne peuvent pas être annulés si vous n'êtes pas dans une transaction.

Exemples

1. Troncature de base

TRUNCATE TABLE employees;

Cet exemple supprime toutes les entrées du tableau `employees`, le laissant vide.

2. Tronquer avec les contrôles de clés étrangères désactivés

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE orders;
SET FOREIGN_KEY_CHECKS = 1;

Ici, les vérifications de clés étrangères sont temporairement désactivées pour tronquer le tableau `orders`, qui pourrait avoir des dépendances.

3. Tronquer et réinitialiser l'incrémentation automatique

TRUNCATE TABLE logs;

La troncature du tableau `logs` supprime non seulement toutes les lignes, mais réinitialise également tous les compteurs d'auto-incrémentation à leurs valeurs initiales.

Conseils et bonnes pratiques

  • A utiliser avec précaution. `TRUNCATE TABLE` ne peut pas être annulé s'il n'est pas dans une transaction ; assurez-vous que vous voulez supprimer définitivement toutes les données.
  • Considérez les clés étrangères. Désactiver temporairement les vérifications des clés étrangères si nécessaire lors de la troncature des tableaux avec dépendances.
  • Réinitialiser les données de manière efficace. Utilisez cette commande pour réinitialiser rapidement les données dans les environnements de test ou de développement plutôt que d'utiliser `DELETE`.
  • Attention aux autorisations. Assurez-vous d'avoir les permissions nécessaires, car `TRUNCATE TABLE` requiert les privilèges `DROP` sur le tableau.
  • Les déclencheurs ne sont pas activés. Contrairement à `DELETE`, `TRUNCATE TABLE` n'active pas les triggers, ce qui peut être une considération importante dans vos opérations de base de données.
  • Impact sur les indices. La troncature d'un tableau permet également de supprimer et de recréer les index, ce qui peut améliorer les performances lors de la réinitialisation de tableaux volumineux.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement