DELETE et TRUNCATE sont deux commandes SQL utilisées pour supprimer des données dans une base de données, mais elles fonctionnent de manière légèrement différente.
1. DELETE : Cette commande supprime les enregistrements ligne par ligne d’une table. Vous pouvez également l’utiliser pour supprimer des enregistrements spécifiques en fonction de conditions spécifiées en utilisant la clause WHERE. DELETE est une opération enregistrée et vous pouvez donc annuler la suppression. DELETE ne supprime pas l’espace utilisé par ces enregistrements dans la table mais seulement les données, il peut donc être lent pour les grosses tables.
1. TRUNCATE : TRUNCATE supprime tous les enregistrements d’une table en réinitialisant les compteurs d’identité à la valeur par défaut. Il est plus rapide que DELETE car il supprime les données en supprimant les pages de données au lieu de supprimer ligne par ligne. TRUNCATE ne peut pas être utilisé avec une clause WHERE pour supprimer des enregistrements spécifiques. Il est également non enregistré et vous ne pouvez donc pas annuler l’opération.
En général, TRUNCATE est utilisé lorsque vous voulez supprimer toutes les données d’une table, tandis que DELETE est utilisé lorsque vous voulez supprimer certaines lignes.