Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
TRUNCATE
Supprime toutes les lignes d'une table sans effectuer d'analyse de table : cette opération est une alternative plus rapide à une opération non qualifiéeDELETE. Pour exécuter une TRUNCATE commande, vous devez avoir l'TRUNCATETABLEautorisation, être le propriétaire de la table ou un superutilisateur. Pour accorder les autorisations de tronquer une table, utilisez la commande GRANT.
TRUNCATEest beaucoup plus efficace que DELETE et ne nécessite pas de VACUUM mainANALYZE. Cependant, sachez que cela TRUNCATE valide la transaction dans laquelle elle est exécutée.
Syntaxe
TRUNCATE [ TABLE ] table_name
La commande fonctionne également sur une vue matérialisée.
TRUNCATE materialized_view_name
Paramètres
- TABLE
-
Mot-clé facultatif.
- table_name
-
Table temporaire ou permanente. Seul le propriétaire de la table ou un super-utilisateur peut tronquer une table.
Vous pouvez tronquer quelque table que ce soit, y compris les tables référencées dans des contraintes de clé étrangère.
Vous n’avez pas besoin d’exécuter une opération VACUUM sur une table après l’avoir tronquée.
- materialized_view_name
-
Vue matérialisée.
Vous pouvez tronquer une vue matérialisée utilisée pour Diffusion de l'ingestion vers une vue matérialisée.
Notes d’utilisation
La TRUNCATE commande valide la transaction dans laquelle elle est exécutée ; par conséquent, vous ne pouvez pas annuler une TRUNCATE opération, et une TRUNCATE commande peut valider d'autres opérations lorsqu'elle se valide elle-même.
Exemples
Utilisez la TRUNCATE commande pour supprimer toutes les lignes du CATEGORY tableau :
truncate category;
Tentative d'annulation d'une TRUNCATE opération :
begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)
La DATE table reste vide après la ROLLBACK commande car celle-ci est TRUNCATE validée automatiquement.
L'exemple suivant utilise la TRUNCATE commande pour supprimer toutes les lignes d'une vue matérialisée.
truncate my_materialized_view;
Elle supprime tous les enregistrements de la vue matérialisée et laisse la vue matérialisée et son schéma intacts. Dans la requête, le nom de la vue matérialisée est un exemple.