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.
Supprime toutes les lignes d’une table sans faire une analyse de table : cette opération est une alternative plus rapide pour une opération DELETE non qualifiée. Pour exécuter une commande TRUNCATE, vous devez disposer de l'autorisation TRUNCATE TABLE, être le propriétaire de la table ou un superutilisateur. Pour accorder les autorisations de tronquer une table, utilisez la commande GRANT.
TRUNCATE est beaucoup plus efficace que DELETE et ne requiert ni opération VACUUM ni opération ANALYZE. Cependant, sachez que TRUNCATE valide la transaction dans laquelle l’opération 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 commande TRUNCATE valide la transaction dans laquelle elle est exécutée ; par conséquent, vous ne pouvez pas annuler une opération TRUNCATE et une commande TRUNCATE peut valider les autres opérations quand elle se valide elle-même.
Exemples
Utilisez la commande TRUNCATE pour supprimer toutes les lignes de la table CATEGORY :
truncate category;
Essayez d’annuler une opération TRUNCATE :
begin;
truncate date;
rollback;
select count(*) from date;
count
-------
0
(1 row)
La table DATE demeure vide après la commande ROLLBACK, car la commande TRUNCATE s’est validée automatiquement.
L’exemple suivant utilise la commande TRUNCATE 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.