Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
TRUNCATE
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, des autorisations TRUNCATE TABLE ont dû vous être accordées, vous devez être le propriétaire de la table ou être un super-utilisateur. 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 Ingestion en streaming 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.
-
Les opérations TRUNCATE sont verrouillées exclusivement lorsqu’elles sont exécutées sur Amazon Redshift, des vues matérialisées en streaming connectées à l’un des éléments suivants :
Un flux de données Amazon Kinesis
Une rubrique Amazon Managed Streaming pour Apache Kafka
Un flux externe pris en charge, tel qu’une rubrique Confluent Cloud Kafka
Pour plus d’informations, consultez Ingestion en streaming vers une vue matérialisée.
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.