Meilleure réponse
Tout d’abord «IL EST IMPOSSIBLE DE TRONQUER UN CHAMP».
Tronquer est un concept dans la base de données qui ne ressemble pas à une instruction de suppression ou à une mise à jour. Le concept principal de Truncate est la façon dont les méta-données derrière la scène sont gérées. Si vous travaillez avec Oracle, vous pouvez étudier un concept appelé «High Water Mark» . Vous pouvez le trouver en détail sur le blog de Burleson ici.
Dans serveur Sql si vous pensez à une clé primaire avec une valeur dincrémentation automatique, truncate définissez-la sur la base. Je veux dire la valeur de départ définie par vous ou par défaut 1. Donc, fondamentalement, les opérations quil effectue dans le back-end sont plus spécifiques aux métadonnées et plus spécifiques à la propriété de niveau Table dune base de données.
Maintenant, si vous vouliez dire que vous voulez nettoyer une colonne, vous pouvez simplement déclencher une mise à jour avec NULL pour cette colonne particulière ou vous pouvez mettre à jour avec .
Update TABLE
Set Column = NULL/’’
Where 1 =1
Jai mentionné ce dernier où clause car de nos jours, de nombreuses bases de données ne vous permettent pas de mettre à jour toute la colonne sans clause where. Dans mySql , il sappelait « Indicateur de mise à jour sécurisée » . Mais pour être plus précis, mettez toujours à jour avec NULL au lieu de «» pour suivre une bonne pratique
Réponse
DELETE est une opération consignée sur une par ligne. Cela signifie que la suppression de chaque ligne est enregistrée et supprimée physiquement. Vous pouvez supprimer nimporte quelle ligne qui nimplique pas de violation de restriction, tout en laissant la clé étrangère ou toute autre restriction en place.
TRUNCATE est une opération journalisée, mais dune manière différente. TRUNCATE enregistre lemplacement de loffre des pages dinformations dans lesquelles des informations existent. La désallocation des pages dinformations signifie que vos lignes dinformations existent toujours dans les pages dinformations, mais les extensions sont marquées comme vides pour une réutilisation. Cest ce qui fait de TRUNCATE une opération plus rapide à effectuer sur DELETE. Impossible de tronquer une table qui a des contraintes de clé étrangère. Vous devez supprimer les contraintes, tronquer la table et réappliquer les contraintes.
TRUNCATE réinitialisera toutes les colonnes didentité à linitialisation de la valeur par défaut. Cela signifie que si vous avez une table avec une colonne didentité et a 264 lignes avec une valeur de départ de 1, son dernier enregistrement aura la valeur 264 (en supposant que vous avez commencé avec la valeur 1) dans les colonnes de votre identité. Après avoir tronqué votre table lorsque vous insérez un nouvel enregistrement dans la table vide, la colonne didentité aura une valeur de 1. DELETE na pas gagné « t. Dans le même scénario, si la ligne actuelle, insérer une nouvelle ligne dans la table vide , la colonne didentité a une valeur de 265.
Pourquoi Tronquer est plus rapide que Supprimer?
Raison: In lécriture pour supprimer toutes les informations est copiée dans lespace table de restauration, puis lopération de suppression est effectuée. Ainsi, lorsque vous tapez ROLLBACK après avoir supprimé une table, vous pouvez récupérer les informations (la méthode les obtenir pour le rythme des tables de restauration). technique prendra du temps, mais lors de lutilisation de TRUNCATE, il supprime les informations directement sans les copier dans lespace table de restauration. Donc, TRUNCATE est plus rapide. Deux fois tronqué, vous ne pouvez pas récupérer les informations.