Différence entre Drop et Truncate

Anonim

Drop et Truncate

Drop et Truncate sont deux instructions SQL (Structured Query Language) utilisées dans Database Management Systems, où nous souhaitons supprimer des enregistrements de données d'une base de données. Les instructions Drop et Truncate suppriment toutes les données d'une table et l'instruction SQL associée. L'opération de suppression n'est pas efficace dans ce cas car elle utilise plus d'espaces de stockage que Drop et Truncate.

Si nous voulons supprimer une table dans une base de données avec toutes ses données, SQL nous permet de l'exécuter facilement en utilisant l'instruction Drop. La commande Drop est une commande DDL (Data Definition Language), qui peut être utilisée pour détruire une base de données, une table, un index ou une vue existante. Il supprime l'ensemble des informations d'une table, ainsi que la structure de la table de la base de données. En outre, nous voudrions peut-être nous débarrasser de toutes les données d'une table simplement, mais sans la table, et nous pouvons utiliser l'instruction Truncate dans SQL dans un tel scénario. Truncate est également une commande DDL et élimine toutes les lignes d'une table, mais préserve la définition de la table pour une utilisation ultérieure.

Commande Drop

Comme indiqué précédemment, la commande Drop supprime la définition de la table ainsi que toutes ses données, ses contraintes d'intégrité, ses index, ses déclencheurs et ses privilèges d'accès créés sur cette table particulière. Il supprime donc entièrement l'objet existant de la base de données et les relations avec d'autres tables ne seront plus valides après l'exécution de la commande. En outre, il supprime toutes les informations sur la table du dictionnaire de données. Voici la syntaxe typique pour utiliser l'instruction Drop sur une table.

DROP TABLE

Nous devons simplement remplacer le nom de la table que nous voulons supprimer de la base de données dans l'exemple ci-dessus de la commande Drop.

Il est important de noter que l'instruction Drop ne peut pas être utilisée pour supprimer une table, déjà référencée par une contrainte de clé étrangère. Dans ce cas, la contrainte de clé étrangère de référence ou cette table particulière doit être supprimée en premier. En outre, l'instruction Drop ne peut pas être appliquée aux tables système de la base de données.

Comme la commande Drop est une instruction de validation automatique, l'opération une fois lancée ne peut pas être annulée et aucun déclencheur ne sera déclenché. Lorsqu'une table est supprimée, toutes les références à la table ne seront pas valides. Par conséquent, si nous voulons réutiliser la table, elle doit être recréée avec toutes les contraintes d'intégrité et les privilèges d'accès. Toutes les relations avec les autres tables doivent également être repérées.

La commande Truncate

Truncate est une commande DDL qui supprime toutes les lignes d'une table sans conditions spécifiées par l'utilisateur et libère l'espace utilisé par la table mais la structure de la table avec ses colonnes, index et contraintes reste le même.Truncate élimine les données d'une table en désallouant les pages de données utilisées pour stocker les données de la table, et seules les libérations de page sont conservées dans le journal des transactions. Il utilise donc moins de ressources de journal des transactions et de ressources système que d'autres commandes SQL associées, comme Supprimer. Donc Truncate est un peu plus rapide que les autres. Voici la syntaxe typique de la commande Truncate.

TRUNCATE TABLE

Nous devons remplacer le nom de la table, à partir de laquelle nous voulons supprimer la totalité des données, dans la syntaxe ci-dessus.

Truncate ne peut pas être utilisé sur une table référencée par une contrainte de clé étrangère. Il utilise un commit automatiquement avant qu'il agisse et un autre commit après, donc l'annulation de la transaction est impossible, et aucun déclencheur n'est déclenché. Si nous voulons réutiliser la table, nous avons seulement besoin d'accéder à la définition de table existante dans la base de données.

Quelle est la différence entre Drop et Truncate?

Les commandes Drop et Truncate sont des commandes DDL et des instructions de validation automatique, de sorte que les transactions effectuées à l'aide de ces commandes ne peuvent pas être annulées.

La principale différence entre Drop et Truncate est que la commande Drop supprime non seulement toutes les données d'une table, mais aussi qu'elle supprime définitivement la structure de la table de toutes les références, tandis que la commande Truncate ne supprime que toutes les lignes dans une table, et il préserve la structure de la table et ses références.

Si une table est supprimée, les relations avec d'autres tables ne seront plus valides et les contraintes d'intégrité et les privilèges d'accès seront également supprimés. Donc, si la table doit être réutilisée, elle doit être reconstruite avec les relations, les contraintes d'intégrité et les privilèges d'accès. Mais si une table est tronquée, la structure de la table et ses contraintes restent pour une utilisation future, et ainsi, les récréations ci-dessus ne sont pas nécessaires pour la réutilisation.

Lorsque ces commandes sont appliquées, nous devons être prudents pour les utiliser. En outre, nous devrions avoir une meilleure compréhension de la nature de ces commandes, de leur fonctionnement, ainsi que d'une planification minutieuse avant de les utiliser afin d'éviter de manquer des éléments essentiels. Enfin, ces deux commandes peuvent être utilisées pour nettoyer les bases de données rapidement et facilement, consommant moins de ressources.